成進位。每一步結束後,把剛剛 parse 的數字從原本的數字中移掉,使下一步可以順利進行
。終止條件要在兩個數字都為 0 的時候才可以結束,因為兩個數字可能不同位數。
cirtical input
956 56
90 90
output
3 carry operations.
1 carry operation.
#include <stdio.h>
#include <stdlib.h>
int main(void){
int num1,num2,tmp;
int counter,carry;
while(scanf("%d %d",&num1,&num2)!=EOF){
if(num1==0&&num2==0) break;
counter=0; carry=0;
while(num1!=0||num2!=0){
if( ( (num1%10) + (num2%10) + carry ) > 9 ){
++counter;
carry=( (num1%10) + (num2%10) + carry ) / 10;
}else
carry=0;
num1/=10; num2/=10;
}
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;
}
沒有留言:
張貼留言