NYoj 74 小学生算术
2017-05-16 23:51
260 查看
小学生算术
时间限制:3000 ms | 内存限制:65535 KB
难度:1
描述
很多小学生在学习加法时,发现“进位”特别容易出错。你的任务是计算两个三位数在相加时需要多少次进位。你编制的程序应当可以连续处理多组数据,直到读到两个0(这是输入结束标记)。
输入
输入两个正整数m,n.(m,n,都是三位数)
输出
输出m,n,相加时需要进位多少次。
样例输入
123 456
555 555
123 594
0 0
样例输出
0
3
1
这个题第一眼,我都看着像大数加法。高精度,我不想碰。但是没办法,早晚都要学。先从简单的入手,只有想清楚思路,就稳了。我的想法是,按字符串处理,一位一位的加,把每一位的进位放到对应的数组里,c[i]里。我觉得虽然繁琐,这个题肯定有更简单的方法,数字很小嘛。但我想用字符串是为了下一步做大数加法做点准备。我的代码如下。
我再附上全场最佳的代码
时间限制:3000 ms | 内存限制:65535 KB
难度:1
描述
很多小学生在学习加法时,发现“进位”特别容易出错。你的任务是计算两个三位数在相加时需要多少次进位。你编制的程序应当可以连续处理多组数据,直到读到两个0(这是输入结束标记)。
输入
输入两个正整数m,n.(m,n,都是三位数)
输出
输出m,n,相加时需要进位多少次。
样例输入
123 456
555 555
123 594
0 0
样例输出
0
3
1
这个题第一眼,我都看着像大数加法。高精度,我不想碰。但是没办法,早晚都要学。先从简单的入手,只有想清楚思路,就稳了。我的想法是,按字符串处理,一位一位的加,把每一位的进位放到对应的数组里,c[i]里。我觉得虽然繁琐,这个题肯定有更简单的方法,数字很小嘛。但我想用字符串是为了下一步做大数加法做点准备。我的代码如下。
#include"cstdio" #include"cstring" #include"cmath" #include"algorithm" #include"cstdlib" using namespace std; bool cmp(int a,int b) { return a<b; } int main () { int t; int i, j, k, n, m, x, y; char a[5]; char b[5]; char c[5]; while(scanf("%s %s",a,b)!=EOF) { if(a[0]=='0'&&b[0]=='0') return 0; c[2]=(a[2]-'0'+b[2]-'0')/10+'0'; for(i=1;i>-1;i--) { c[i]=((a[i]-'0'+b[i]-'0'+c[i+1]-'0')/10)+'0'; } int sum=0; for(i=0;i<3;i++) { sum=sum+c[i]-'0'; } printf("%d\n",sum); } return 0; }
我再附上全场最佳的代码
#include<stdio.h> int main() { int a,b,c,d,e,f,n,m,i; for(;;) { scanf("%d%d",&n,&m); if(n==0&&m==0) return 0; else { i=0; a=n/100;b=n%100/10;c=n%10; d=m/100;e=m%100/10;f=m%10; if(c+f>=10) {i+=1;b+=1;} if(b+e>=10) {i+=1;a+=1;} if a2f1 (a+d>=10) {i+=1;} printf("%d\n",i); } } return 0; }
相关文章推荐
- 【NYOJ】[74]小学生算术
- NYOJ:74-小学生算术
- NYOJ 74 小学生算术
- nyoj--74--小学生算术(水)
- NYOJ-74-小学生算术-2013年10月12日14:58:57
- nyoj--74--小学生算术(水)
- nyoj_74 小学生算术
- NYOJ74小学生算术
- NYOJ-74 小学生算术
- NYOJ 74 小学生算术
- NYOJ_74 小学生算术
- 【NYOJ-74】 小学生算术
- 小学生算术(nyoj74)
- nyoj 74 小学生算术
- nyoj题目74:小学生算术
- NYOJ-74-小学生算术-2013年08月16日00:44:54
- NYOJ-74 小学生算术
- NYOJ 74 小学生算术 2013年8月20日
- NYOJ74小学生算术
- NYOJ-74 小学生算术