計算兩數相加共有幾次進位

[心得]

1.迴圈裡要記得初始 carry=0

 

#include <stdio.h>

int main()
{
    int a,b;
    int r1,r2;
    int carry;
    int counter;
   
    while(scanf("%d %d",&a,&b))
    {
        if(a==0&&b==0) break;
        counter=0;
        carry=0;
       
        while(a!=0||b!=0)
        {
            r1=a%10; r2=b%10;
            a=a/10; b=b/10;
            carry=(carry+r1+r2)/10;
       
            if(carry) counter++;
        }
       
        if(counter==0) printf("No carry operation.\n");
        else if(counter==1) printf("1 carry operation.\n");
             else printf("%d carry operations.\n",counter);
    }
   
    return 0;
}

創作者介紹
創作者 RingsACM 的頭像
RingsACM

Ring's ACM

RingsACM 發表在 痞客邦 留言(0) 人氣()