首页 > 分享 > 算法竞赛入门经典第二版

算法竞赛入门经典第二版

2-1

输出100~999中的所有水仙花数。若3位数ABC满足ABC=A3+B3+C3,则称其为水仙花

数。例如153=13+53+33,所以153是水仙花数。

#include<stdio.h>

int main()

{

int a,b,c;

for(int i=100;i<999;i++){

a=i/100;

b=i/10%10;

c=i%10;

if(i==a*a*a+b*b*b+c*c*c)

printf("%dn",i);

}

return 0;

}

2-2 

#include <stdio.h>

/*相传韩信才智过人,从不直接清点自己军队的人数,只要让士兵先后以三人一排、五人

一排、七人一排地变换队形,而他每次只掠一眼队伍的排尾就知道总人数了。输入包含多组

数据,每组数据包含3个非负整数a,b,c,表示每种队形排尾的人数(a<3,b<5,c<

7),输出总人数的最小值(或报告无解)。已知总人数不小于10,不超过100。输入到文件

结束为止。

样例输入:

2 1 6

2 1 3

样例输出:

Case 1: 41

Case 2: No answer*/

int main()

{

int i,a,b,c;

scanf("%d%d%dn",&a,&b,&c);

for(i=10;i<=100;i++){

if(i%3==a&&i%5==b&&i%7==c)

printf("%dn",i);

}

if(i==100)

printf("No answer");

return 0;

}

2-3

#include <stdio.h>

/*输入正整数n≤20,输出一个n层的倒三角形。例如,n=5时输出如下:

#########

#######

#####

###

#*/

int main()

{

int n;

scanf("%d",&n);

for(int i=n;i>=1;i--){ //n层

for(int j=n;j>i;j--) // 输出每一行的空格数

printf(" ");

for(int k=0;k<2*i-1;k++)//输出每一行的#数等于2*i-1

printf("#");

printf("n");

}

return 0;

}

C++:

for (i = n; i > 0; i--) {

for (j = 0; j < n - i; j++) cout << " ";

for (j = 0; j < 2*i-1; j++) cout << "#";

cout << "n"; }

2-4

#include <stdio.h>

//注:陷阱就是在n特别大时如果直接n*n就会溢出,所以只能连除两次

int main()

{

int n,m;

scanf("%d %d",&n,&m);

double sum=0;

for(int i=n;i<=m;i++)

//sum +=1.0/((n+i)*(n+i));

sum+=1.0/i/i;

printf("%.5fn",sum);

return 0;

}

2-5

#include <stdio.h>

/*输入正整数a,b,c,输出a/b的小数形式,精确到小数点后c位。a,b≤106,c≤100。输

入包含多组数据,结束标记为a=b=c=0*/

int main()

{

int a,b,c;

scanf("%d %d %d",&a,&b,&c);

printf("%.*lfn",c,(double)a/b);

return 0;

}

2-6

用1,2,3,…,9组成3个三位数abc,def和ghi,每个数字恰好使用一次,要求abc:def:ghi=1:2:3。按照“abc def ghi”的格式输出所有解,每行一个解。

#include<stdio.h>

int is_valid_number(int num, int array[])

{

int x, y, z;

x = num / 100;

y = num / 10 % 10;

z = num % 10;

if (x == y || y == z || array[x] || array[y] || array[z]) {

// Digit used

return 0;

}

array[x] = array[y] = array[z] = 1;

return 1;

}

int main()

{

int array[10];

array[0] = 1;

for (int checked_num = 123; checked_num < 329; checked_num++ )

{

for (int i = 1; i < 10; i++)

array[i] = 0;

if (is_valid_number(checked_num, array)

&& is_valid_number(checked_num*2, array)

&& is_valid_number(checked_num*3, array))

{

printf("%d %d %dn",checked_num,checked_num*2,checked_num*3);

}

}

return 0;

}

相关知识

【6岁+入门版】《寒菊》宋
AI必读10本经典
算法竞赛入门经典笔记—第二章
花卉博物馆(第二版)
【报名通知】首届CCF算法能力大赛正式启动
关于举办首届CCF算法能力大赛的通知
《花卉博物馆(第二版)》
植物保护学(第二版)
园艺学概论(第二版)
花卉博物馆(第二版)【全本

网址: 算法竞赛入门经典第二版 https://m.huajiangbk.com/newsview1042269.html

所属分类:花卉
上一篇: 萝卜皮白菜花(2)
下一篇: 怎么在冬天里种出好看的白菜花