之後x與y各除以10,反覆之,到兩數除以10皆為0止。
需考慮99999 1的carry數。
carry數會影響下一個carry數的判斷,需注意。
/* ACM 10035
* mythnc
* 2u11/10/12 20:48:47
* run time = 0.02
*/
#include <stdio.h>
int carry(int, int);
int main(void)
{
int x, y, n;
while (scanf("%d %d", &x, &y) == 2) {
if (x == 0 && y == 0)
break;
if ((n = carry(x, y)) == 1)
printf("1 carry operation.\n");
else if (n == 0)
printf("No carry operation.\n");
else
printf("%d carry operations.\n", n);
}
return 0;
}
/* carry: calculate the carry times */
int carry(int x, int y)
{
int n, c;
c = n = 0;
while (x != 0 || y != 0) { /* same as !(x==0 && y==0) */
if (x % 10 + y % 10 + c > 9) {
n++;
c = 1;
}
else
c = 0;
x /= 10;
y /= 10;
}
return n;
}
沒有留言:
張貼留言