信息发布→ 登录 注册 退出

算法竞赛(二)

发布时间:2025-06-25

点击量:

目录

一、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("%d\n",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("%d\n",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("%.6f\n",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("%d\n",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 %.3f\n",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 %.3f\n",min,max, (double)s/n);fclose(fin);fclose(fout);return 0;}
标签:# 源代码  # currentcolor  # 完成后  # 这个时候  # 回车键  # 都要  # 重定向  # 按下  # 数据统计  # linux  # 样例  # 算法  # 阶乘  # fopen  # JavaScript  # ai  # windows  
在线客服
服务热线

服务热线

4008888355

微信咨询
二维码
返回顶部
×二维码

截屏,微信识别二维码

打开微信

微信号已复制,请打开微信添加咨询详情!