1 条题解
-
0
C :
#include <stdio.h> #include <stdlib.h> #include <string.h> int main() { unsigned int a; unsigned int b; while(scanf("%d%d",&a,&b) != EOF){ if(a==0 && b==0)break; char temp2[20], temp1[20]; sprintf(temp1,"%d",a); sprintf(temp2,"%d",b); int ans = 0; for(int i = strlen(temp1),j = strlen(temp2);i >= 0&&j >= 0; i--, j--){ if(temp1[i]-'0' + temp2[j]-'0' >= 10)ans++; } if(ans==1) printf("%d carry operation.\n",ans); if(ans>1) printf("%d carry operations.\n",ans); if(ans==0) printf("NO carry operation.\n"); } return 0; }
C++ :
#include "stdio.h" int main() { int a,b,c; while(1) { int x = 0; scanf("%d%d",&a,&b); if(a == 0 && b == 0) break; while(a>0 && b>0) { if(a%10 + b%10 >= 10) x++;//只是按位相加,1+999只有1个进位!!--不考虑进位带来新的进位。 a /= 10; b /= 10; } if(x == 0) printf("NO carry operation.\n"); else if(x == 1) printf("1 carry operation.\n"); else printf("%d carry operations.\n",x); } return 0; }
- 1
信息
- ID
- 1488
- 时间
- 1000ms
- 内存
- 32MiB
- 难度
- (无)
- 标签
- 递交数
- 0
- 已通过
- 0
- 上传者