编程语言应用

首页 » 常识 » 预防 » C语言编程基础练习
TUhjnbcbe - 2022/4/27 22:57:00

题目内容

#includestdio.hintmain(){intn;inti;doublesum=0.0;scanf("%d",n);for(i=1;i=n;i++){sum+=1.0/i;}printf("f(%d)=%f\n",n,sum);return0;}

#includestdio.hintmain(){intn;inti;doublesum=0.0;doublesign=1.0;scanf("%d",n);for(i=1;i=n;i++){sum+=sign/i;sign=-sign;}printf("f(%d)=%f\n",n,sum);return0;}

题目内容

求最大公约数:

输入格式:

输入两个数a和b。

输出格式:

输出他们的最大公约数。

输入样例:

输出样例:

6

时间限制:ms内存限制:kb

方法一:

枚举法:

设t为2;

如果u和v都能被t整除,则记下这个t;

t加1后重复第2步,直到t等于u或v;

那么,曾经记下的最大的可以同时整除u和v的t就是gcd。

#includestdio.hintmain(){inta,b;intmin;scanf("%d%d",a,b);if(ab){min=a;}else{min=b;}intret=0;inti;for(i=1;imin;i++){if(a%i==0){if(b%i==0){ret=i;}}}printf("%d和%d的最大公约数是%d.\n",a,b,ret);return0;}

方法二:

辗转相除法:

如果b等于0,计算结束,a就是最大公约数;

否则,计算a除以b的余数,让a等于b,而b等于那个余数;

回到第一步。

#includestdio.hintmain(){inta,b;intt;scanf("%d%d",a,b);while(b!=0){t=a%b;a=b;b=t;}printf("gcd=%d\n",a);return0;}

题目内容

正序分解整数:

输入格式:

输入一个非负整数。

输出格式:

正序输出它的每一位数字。

输入样例:

输出样例:

时间限制:ms内存限制:kb

#includestdio.hintmain(){intx;scanf("%d",x);intt=x;intmask=1;while(t9){t/=10;mask*=10;}//printf("x=%d,mask=%d\n",x,mask);do{intd=x/mask;printf("%d",d);if(mask9){printf("");}x%=mask;mask/=10;}while(mask0);printf("\n");return0;}你点的每个赞,我都认真当成了喜欢预览时标签不可点收录于话题#个上一篇下一篇

1
查看完整版本: C语言编程基础练习