题目内容
#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;}你点的每个赞,我都认真当成了喜欢预览时标签不可点收录于话题#个上一篇下一篇