算法竞赛入门经典习题2-6排列(permutation)

-.-.-..-.... -.-.-..-....     2022-08-06     608

关键词:

暴力解法:

 1 #include <stdio.h>
 2 #include <stdlib.h>
 3 
 4 int compare(const void *a, const void *b);
 5 
 6 int main(int argc, char **argv){
 7     int i,j,k;
 8     int arr[9];
 9     for(i=100;i<333;i++){
10     for(j=200;j<666;j++){
11         for(k=300;k<1000;k++){
12         arr[0] = i/100;
13         arr[1] = (i/10)%10;
14         arr[2] = i%10;
15         arr[3] = j/100;
16         arr[4] = (j/10)%10;
17         arr[5] = j%10;
18         arr[6] = k/100;
19         arr[7] = (k/10)%10;
20         arr[8] = k%10;
21         qsort(arr, 9, sizeof(int),compare);
22         int m;
23         for( m = 0; m<9; m++){
24             if(arr[m] != m+1){
25             break;
26             }
27         }
28         if(m == 9){
29             if(k%i==0 && j%i == 0 && k/i == 3 && j/i == 2){
30             printf("%d %d %d
",i,j,k);
31             }
32         }
33         }
34     }
35     }
36     return 0;
37 }
38 int compare(const void *a, const void *b){
39     return *(int*)a - *(int*)b;
40 }

 vs.

 1 #include <stdio.h>
 2 #include <stdlib.h>
 3 
 4 int compare(const void *a, const void *b);
 5 
 6 int main(int argc, char **argv){
 7     int arr[9];
 8     int abc, def, ghi;
 9     for(abc = 100; abc <334; abc++){
10     def = 2 * abc;
11     ghi = 3 * abc;
12     arr[0] = abc/100;
13     arr[1] = (abc/10)%10;
14     arr[2] = abc%10;
15     arr[3] = def/100;
16     arr[4] = (def/10)%10;
17     arr[5] = def%10;
18     arr[6] = ghi/100;
19     arr[7] = (ghi/10)%10;
20     arr[8] = ghi%10;
21     qsort(arr, 9, sizeof(int), compare);
22     int m;
23     for( m = 0; m<9; m++){
24         if(arr[m] != m+1){
25         break;
26         }
27     }
28     if(m == 9){
29         printf("%d %d %d
",abc, def, ghi);
30     }
31     }
32     return 0;
33 }
34 
35 int compare(const void *a, const void *b){
36     return *(int*)a - *(int*)b;
37 }

 

算法竞赛入门经典习题2-10排列(permutation)

习题2-10     用1,2,3。....,9组成3个三位数abc。def和ghi,每一个数字恰好使用一次,要求abc:def:ghi=1:2:3。输出全部解。#include<stdio.h>#include<stdlib.h>#include<string.h>intmain(intargc,char*ar 查看详情

《算法竞赛入门经典(第二版)》习题解答——第二章(代码片段)

文章目录一、习题2-1水仙花数(daffodil)二、习题2-2韩信点兵(hanxin)三、习题2-3倒三角形(triangle)四、习题2-4子序列的和(subsequence)五、习题2-5分数化小数(decimal)六、习题2-6排列࿰... 查看详情

算法竞赛入门经典_1.5_习题练习

1.温度问题 #include<stdio.h>intmain(){doublef,c;scanf("%lf",&f);c=5*(f-32)/9.0;printf("%.3lf ",c);return0;} 运行结果:2.平均数问题#include<stdio.h>intmain(){inta,b,c;scanf("%d%d%d",&a 查看详情

算法竞赛入门经典(刘汝佳)课后习题前三章答案

本文转载:第一章习题1-1#include <stdio.h>int main(){int a,b,c;double d;scanf("%d%d%d",&a,&b,&c);d=(double)(a+b+c);printf("%.3lf ",d/3.0);return 0;}习题1-2#include  查看详情

算法入门竞赛经典7.2枚举排列

7.2.1 生成1~n的排列#include<stdio.h>intnum[20],n;voidPrint(intn,int*a,intcur){inti,j,flag;if(cur==n+1)//递归边界{for(i=1;i<cur;i++)printf("%d",a[i]);printf(" ");}else{for(i=1;i<=n;i++){flag=1 查看详情

算法竞赛入门经典第二版第二章习题及思考题(代码片段)

enmmmmmm】 大部分好像除了最后一个思考题都很简单代码如下#include<iostream>#include<cstring>#include<cstdio>#include<cmath>intmain()/*for(inti=100;i<=999;i++)inta=i/100;intc=i%10;intb=(i-a*10 查看详情

《算法竞赛入门经典(第2版)》pdf下载在线阅读,求百度网盘云资源

《算法竞赛入门经典(第2版)》(刘汝佳)电子书网盘下载免费在线阅读资源链接:链接:https://pan.baidu.com/s/1hn9oYzCM-fjrw649WmvKyg 提取码:6bov  书名:算法竞赛入门经典(第2版)作者:刘汝佳豆瓣评分:8.9出版社:清... 查看详情

《算法竞赛入门经典(第二版)》pdf

...下载内容简介  · · · · · ·《算法竞赛入门经典(第2版)》是一本算法竞赛的入门与提高教材,把C/C++语言、算法和解题有机地结合在一起,淡化理论,注重学习方法和实践技巧。全书内容分为12章,... 查看详情

算法竞赛入门经典刘汝佳

        点击图片或此处下载  查看详情

《算法竞赛入门经典》之“算法设计与优化策略”

一。构造法UVA120 StacksofFlapjacksTimeLimit: 3000MS  64bitIOFormat: %lld&%lluSubmit Status uDebugDescriptionBackgroundStacksandQueuesareoftenconsideredthebreadandbutt 查看详情

笔记算法竞赛入门经典

contents基础题目选解WERTYU、数据结构基础暴力求解法高效算法设计动态规划初步数学概念与方法图论模型与算法 1、WERTYU刚开始的思路是output[‘S‘]=‘A‘。。。书上的常量表应该会比较通用一点。。而不仅仅适于有序常量。i... 查看详情

随笔笔记算法竞赛入门经典ch3

关于读取scanf()读取到空格自动停止getchar()读取结束返回EOF(整型) 查看详情

算法竞赛入门经典_4.3_递归

...归头,二是递归体。我们使用gcc调试工具H:编程书籍学习算法竞赛入门经典2代码算法入门经典第四章>bf‘b‘不是内部或外部命令,也不是可运行的程 查看详情

随笔笔记算法竞赛入门经典ch4

typedefstruct{doublex,y;}Point;使用typedef可以使结构体使用前不需要加struct 查看详情

算法竞赛入门经典(第2版)+算法艺术与信息学竞赛pdf-高清版免费下载

下载地址:网盘下载备用地址:网盘下载  查看详情

算法竞赛入门经典——训练指南

1.UVa11300我的代码:#include<iostream>#include<cstdio>#include<algorithm>usingnamespacestd;longlongC[1000010],M,a;intmain(){intn;while(~scanf("%d",&n)){C[0]=0;for(inti=1;i<=n;i++){ 查看详情

《算法竞赛入门经典》小收获

1.windows下的命令                              6.15 cmd 打开命令窗口dir 文件列表cdmd d 改变创建删除目录cd 返回根目录more ype 显示文件内容fc 比较两个文件内容del ... 查看详情

算法竞赛-入门经典计算并输出1+2的值

1.练习目的:计算并输出1+2的值2.源码:1#include<stdio.h>2intmain()3{45printf("%d ",1+2);6return0;7}3.总结:略... 查看详情