北大acm2562为什么老是wrong answer
#include<iostream>usingnamespacestd;intmain(){longlonga,b;while(cin>>a>>b){if(a==0&&b...
#include <iostream>
using namespace std;
int main()
{
long long a,b;
while(cin>>a>>b){
if(a==0&&b==0)break;
int c,d,f,sum=0;
f=0;
while(a!=0||b!=0){
c=a%10;
d=b%10;
if(c+d+f>=10){
sum++;
f=1;}
else f=0;
a/=10;
b/=10;
}
if(sum==0)cout<<"No carry operation."<<endl;
else cout<<sum<<" carry operation."<<endl;
}
return 0;
} 展开
using namespace std;
int main()
{
long long a,b;
while(cin>>a>>b){
if(a==0&&b==0)break;
int c,d,f,sum=0;
f=0;
while(a!=0||b!=0){
c=a%10;
d=b%10;
if(c+d+f>=10){
sum++;
f=1;}
else f=0;
a/=10;
b/=10;
}
if(sum==0)cout<<"No carry operation."<<endl;
else cout<<sum<<" carry operation."<<endl;
}
return 0;
} 展开
1个回答
展开全部
#include<stdio.h>
#include<string.h>
int main()
{
int i,sum[15],a,b,go[15],j,k,c;
while(scanf("%d%d",&a,&b)!=EOF&&(a||b))
{
memset(sum,0,sizeof(sum));
i=0;
while(a)
{
sum[i++]=a%10;
a/=10;
}
j=0;
memset(go,0,sizeof(go));
while(b)
{
go[j++]=b%10;
b/=10;
}
for(c=k=0;k<j;k++)
{
sum[k]+=go[k];
if(sum[k]>9)
{
sum[k]-=10;
c++;
sum[k+1]++;
}
}
for(;k<13;k++)
{
if(sum[k]>9)
{
sum[k]-=10;
sum[k+1]++;
c++;
}
}
if(c>1)
printf("%d carry operations.\n",c);//注意复数
else if(c==1)
printf("%d carry operation.\n",c);
else
printf("No carry operation.\n");
}
return 0;
}
#include<string.h>
int main()
{
int i,sum[15],a,b,go[15],j,k,c;
while(scanf("%d%d",&a,&b)!=EOF&&(a||b))
{
memset(sum,0,sizeof(sum));
i=0;
while(a)
{
sum[i++]=a%10;
a/=10;
}
j=0;
memset(go,0,sizeof(go));
while(b)
{
go[j++]=b%10;
b/=10;
}
for(c=k=0;k<j;k++)
{
sum[k]+=go[k];
if(sum[k]>9)
{
sum[k]-=10;
c++;
sum[k+1]++;
}
}
for(;k<13;k++)
{
if(sum[k]>9)
{
sum[k]-=10;
sum[k+1]++;
c++;
}
}
if(c>1)
printf("%d carry operations.\n",c);//注意复数
else if(c==1)
printf("%d carry operation.\n",c);
else
printf("No carry operation.\n");
}
return 0;
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询