算法竞赛(二)

目录

一、aabb问题

二、7744问题

三、3n + 1 问题

四、近似计算

五、阶乘之和

六、数据统计

一、aabb问题

没有输入:

样例输出:

1100

1111

1122

*****

源代码:

代码语言:JavaScript代码运行次数:0运行复制

#includeint main(){int a,b;for(a=1;a<=9;a++)for(b=0;b<=9;b++){printf("%dn",a*1100+b*11);}return 0;  } 

二、7744问题

样例输出:

7744

源代码:

代码语言:javascript代码运行次数:0运行复制

#include#includeint main(){int a,b;for(a=1;a<=9;a++)for(b=0;b<=9;b++){int n = a*1100+b*11;int m = floor(sqrt(n) + 0.5);if(m*m == n)printf("%dn",n);}return 0;  } 

三、3n + 1 问题

样例输入:

3

样例输出:

7

源代码:

代码语言:javascript代码运行次数:0运行复制

#includeint main(){int n,count = 0;scanf("%d",&n);while(n != 1){if(n%2 == 1)n=3*n +1;elsen=n/2;count++;}printf("%d",count);return 0;  } 

四、近似计算

算法竞赛(二)

,直到最后一项小于

算法竞赛(二)

 样例输出:

0.785399

源代码:

代码语言:javascript代码运行次数:0运行复制

#includeint main(){double sum =0;for(int i = 0;;i++){double term = 1.0/(i*2+1);if(i%2 == 0)sum =sum + term;else sum = sum - term;if(term<1e-6)//e代表底数10 -6代表负六次方break;}printf("%.6fn",sum);return 0;  } 

五、阶乘之和

样例输入:

10

样例输出:

 37913

源代码:

代码语言:javascript代码运行次数:0运行复制

#includeint main(){int n,S;scanf("%d",&n);for(int i=1;i<=n;i++){int f=1;//每次循环都要初始化变量for(int j=1;j<=i;j++)f*=j;S+=f;}printf("%dn",S%1000000);return 0;  } 

六、数据统计

样例输入

1 2 3

样例输出

1 3 2.000 

源代码:

代码语言:javascript代码运行次数:0运行复制

#includeint main(){int x,n=0,min,max,s=0;while(scanf("%d",&x)==1){s+=x;if(xmax)max =x;n++;}printf("%d %d %.3f",min,max,s*1.0/n);return 0;}

PS:有时候,按下回车键,不一定意味着输入结束,在windows环境下,我们输入完成后,还要按下 ctrl + z,这个时候代表输入结束,linux环境下,按下ctrl + D 可代表输入结束

数据统计(重定向版)

代码语言:javascript代码运行次数:0运行复制

//重定向法#define LOCAL#include#define INF 1000000000int main(){#ifdef INF LOCALfreopen("data.in","r",stdin);freopen("data.out","w",stdout);#endifint x,n = 0,min =INF,max = -INF,s = 0;while(scanf("%d",&x) == 1){s += x;if(xmax) max = x;n++; }  printf("%d %d %.3fn",min,max,(double)s/n); return 0;}

数据统计(fopen版)

代码语言:javascript代码运行次数:0运行复制

#include#define INF 1000000000int main(){FILE *fin, *fout;fin = fopen("data.in","rb");fout = fopen("data.out","wb");int x,n = 0,min = INF,max = -INF,s = 0;while(fscanf(fin,"%d",&x)==1){s +=x;if(xmax) max = x;n++;}fprintf(fout,"%d %d %.3fn",min,max, (double)s/n);fclose(fin);fclose(fout);return 0;}

© 版权声明
THE END
喜欢就支持一下吧
点赞11 分享