小学生算术
2014-03-09 08:35
148 查看
小学生算术
很多小学生在学习加法时,发现“进位”特别容易出错。你的任务是计算两个三位数在相加时需要多少次进位。你编制的程序应当可以连续处理多组数据,直到读到两个0(这是输入结束标记)。
输入输入两个正整数m,n.(m,n,都是三位数)输出输出m,n,相加时需要进位多少次。样例输入
样例输出
#include<stdio.h>
int main()
{
int m,n,b,s;
while(scanf("%d %d",&m,&n),m!=0&&n!=0)
{
int t=0;
if((m%10+n%10)>9)
{
t++;
s=m/10%10+n/10%10+1;
if(s>9)
{
t++;
b=m/100+n/100+1;
if(b>9)
t++;
}
else
{
b=m/100+n/100;
if(b>9)
t++;
}
}
else
{
s=m/10%10+n/10%10;
if(s>9)
{
t++;
b=m/100+n/100+1;
if(b>9)
t++;
}
else
{
b=m/100+n/100;
if(b>9)
t++;
}
}
printf("%d\n",t);
}
return 0;
}
这是简化后的代码:
#include<stdio.h>
int main(){
int a,b,c,m,n,t;
while(scanf("%d %d",&m,&n),m&&n){
t=0;
a=m%10+n%10;
b=m/10%10+n/10%10;
c=m/100+n/100;
if(a>9){
t++;
b++;
}
if(b>9){
t++;
c++;
}
if(c>9){
t++;
}
printf("%d\n",t);
}
return 0;
}
很多小学生在学习加法时,发现“进位”特别容易出错。你的任务是计算两个三位数在相加时需要多少次进位。你编制的程序应当可以连续处理多组数据,直到读到两个0(这是输入结束标记)。
输入输入两个正整数m,n.(m,n,都是三位数)输出输出m,n,相加时需要进位多少次。样例输入
123 456 555 555 123 594 0 0
样例输出
0 3 1
#include<stdio.h>
int main()
{
int m,n,b,s;
while(scanf("%d %d",&m,&n),m!=0&&n!=0)
{
int t=0;
if((m%10+n%10)>9)
{
t++;
s=m/10%10+n/10%10+1;
if(s>9)
{
t++;
b=m/100+n/100+1;
if(b>9)
t++;
}
else
{
b=m/100+n/100;
if(b>9)
t++;
}
}
else
{
s=m/10%10+n/10%10;
if(s>9)
{
t++;
b=m/100+n/100+1;
if(b>9)
t++;
}
else
{
b=m/100+n/100;
if(b>9)
t++;
}
}
printf("%d\n",t);
}
return 0;
}
这是简化后的代码:
#include<stdio.h>
int main(){
int a,b,c,m,n,t;
while(scanf("%d %d",&m,&n),m&&n){
t=0;
a=m%10+n%10;
b=m/10%10+n/10%10;
c=m/100+n/100;
if(a>9){
t++;
b++;
}
if(b>9){
t++;
c++;
}
if(c>9){
t++;
}
printf("%d\n",t);
}
return 0;
}