NYOJ-74 小学生算术

小学生算术

时间限制: 3000 ms  |  内存限制: 65535 KB
难度: 1
描述
很多小学生在学习加法时,发现“进位”特别容易出错。你的任务是计算两个三位数在相加时需要多少次进位。你编制的程序应当可以连续处理多组数据,直到读到两个0(这是输入结束标记)。
输入
输入两个正整数m,n.(m,n,都是三位数)
输出
输出m,n,相加时需要进位多少次。
样例输入
123 456
555 555
123 594
0 0
样例输出
0
3 
1

      

本来循环用的是while(scanf("%d%d",&a,&b),a,b)  但是输出结果的时候只输出了0 0 之前的那一组数,不知道为什么,求解答





01. #include<iostream>
02. #include<cstdio>
03. using namespace std;
04. int main()
05. {
06. int a,b,a1,a2,a3,b1,b2,b3,r=0,sum=0;
07. for(;;)
08. {
09. cin>>a>>b;
10. if(a==0&&b==0)
11. return 0;
12. r=0;sum=0;
13. a1=a/100;b1=b/100;
14. a2=a%100/10;b2=b%100/10;
15. a3=a%10;b3=b%10;
16. if(a3+b3>9)
17. {
18. r=1;
19. sum++;
20. }
21. if(a2+b2+r>9)
22. {
23. r=1;sum++;
24. }
25. if(a1+b1+r>9)
26. {
27. sum++;
28. }
29. cout<<sum<<endl;
30. }
31. return 0;
32. }




要不要这么坑,刚才测试了一下,while()循环又能用了……



01. #include<iostream>
02. #include<cstdio>
03. using namespace std;
04. int main()
05. {
06. int a,b,a1,a2,a3,b1,b2,b3,r=0,sum=0;
07. while(scanf("%d%d",&a,&b),a,b)
08. {
09. r=0;sum=0;
10. a1=a/100;b1=b/100;
11. a2=a%100/10;b2=b%100/10;
12. a3=a%10;b3=b%10;
13. if(a3+b3>9)
14. {
15. r=1;
16. sum++;
17. }
18. if(a2+b2+r>9)
19. {
20. r=1;sum++;
21. }
22. if(a1+b1+r>9)
23. {
24. sum++;
25. }
26. cout<<sum<<endl;
27. }
28. return 0;
29. }


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值