Saturday 5 May 2012

UVa 10035 Problem B: Primary Arithmetic Solution

#include<stdio.h>
int main()
{
unsigned long int a,b,x,y;
int i,j,c,d,carry;
while(scanf("%lu%lu",&a,&b)==2)
{
c=0;
d=0;
if(a==0 && b==0) break;
for(i=0;i<9;i++)
    {
    x=a%10;
    y=b%10;
    if(x+y>=10)
        {
        d=d+1;
        do
            {
            a=a/10;
            b=b/10;
            x=a%10;
            y=b%10;
            if(x+y==9)
            c=c+1;
            else if(x+y>9)
            d=d+1;
            }while(x+y>=9);
        }
    a=a/10;
    b=b/10;
    if(a==0 && b==0) break;
    }
carry=d+c;
if(carry==0)
printf("No carry operation.\n");
else if(carry==1)
printf("%d carry operation.\n",carry);
else
printf("%d carry operations.\n",carry);
}
return 0;
}

1 comment:

  1. //Why this code is not right?????

    #include
    #include
    using namespace std;

    main()
    {
    unsigned long int a,b,i,j,count,x,y,c,d,e,sum,k=0;
    while((scanf("%lu%lu",&a,&b)==2))
    {
    count=0,sum=0;
    if(a<=0 && b<=0)
    {
    break;
    }
    x=a;
    y=b;

    for(i=0;i<9;i++)
    {
    c=x%10;
    d=y%10;
    e=c+d+k;
    if(e>=10)
    {
    sum++;
    k=1;
    }
    else if(e<10)
    {
    k=0;
    }
    x/=10;
    y/=10;
    if(x==0 && y==0)break;
    }
    if(sum==0)
    {
    cout<<"No carry operation."<<endl;

    }
    else if(sum==1)
    {
    printf("%d carry operation.\n",sum);

    }
    else
    printf("%d carry operations.\n",sum);
    }
    return 0;

    }

    ReplyDelete