HDOJ 1002 A + B Problem II
2012-09-11 13:40
246 查看
~~~题目链接~~~
大数减法(不知道对不对)
#include <stdio.h> #include <string.h> int main() { int i = 0, t = 0, c = 0, len = 0, len1 = 0, len2 = 0, cas = 0; char str1[1002], str2[1002]; int num1[1002], num2[1002]; scanf("%d", &t); while(t--) { memset(num1, 0, sizeof(num1)); memset(num2, 0, sizeof(num2)); scanf("%s %s", str1, str2); len1 = strlen(str1); len2 = strlen(str2); for(i = 0; i<len1; i++) num1[i] = str1[len1-i-1]-'0';//把数倒置 for(i = 0; i<len2; i++) num2[i] = str2[len2-i-1]-'0'; len = len1>len2? len1:len2; c = 0;//为余数 for(i = 0; i<len; i++) { c = num1[i]+num2[i]+c; num1[i] = c%10; c /= 10; } if(c) num1[i++] = c; while(num1[i] == 0 && i>-1) i--;//去前0 printf("Case %d:\n", ++cas); printf("%s + %s = ", str1, str2); while(i>-1) printf("%d", num1[i--]); printf("\n"); if(t != 0) printf("\n"); } return 0; }
大数减法(不知道对不对)
#include <stdio.h> #include <string.h> int main() { int i = 0, flag = 0, flag2 = 0, len = 0, len1 = 0, len2 = 0; char str1[1002], str2[1002]; int n1[1002], n2[1002], n3[1002]; memset(n1, 0, sizeof(n1)); memset(n2, 0, sizeof(n2)); scanf("%s %s", str1, str2); len1 = strlen(str1); len2 = strlen(str2); for(i = 0; i<len1; i++) n1[i] = str1[len1-1-i]-'0';//倒置 for(i = 0; i<len2; i++) n2[i] = str2[len2-1-i]-'0'; while(n1[len1-1] == 0 && len1>0)//忽略前0 len1--; while(n2[len2-1] == 0 && len2>0)//忽略前0 len2--; len = len1>len2? len1:len2; for(i = len; len1 == len2 && i>-1; i--)//当 len1 == len2 时,比较大小 if(n1[i]>n2[i]) break; else if(n1[i]<n2[i]) flag2 = 1; if((len1<len2) || ((len1 == len2) && flag2)) { memcpy(n3, n1, 1000); memcpy(n1, n2, 1000); memcpy(n2, n3, 1000); flag = 1; } for(i = 0; i<len; i++) { if(n1[i]>=n2[i]) n1[i] = n1[i]-n2[i]; else { n1[i] = 1*10+n1[i]-n2[i]; n1[i+1] -= 1; } } while(n1[i] == 0 && i>0) i--; if(n1[0] != 0 && flag) printf("-"); while(i>-1) printf("%d", n1[i--]); return 0; }
相关文章推荐
- ACM--大数相加--HDOJ 1002--A + B Problem II
- hdoj 1002 A + B Problem II
- HDOJ(1002) A + B Problem II
- (HDOJ 1002)A + B Problem II
- hdoj1002--A + B Problem II
- [HDOJ]1002.A + B Problem II
- HDOJ1002 A+B Problem II
- [HDOJ]1002.A + B Problem II
- hdoj 1002 A + B Problem II
- HDOJ1002 A + B Problem II
- HDOJ 1002A + B Problem II求和问题(二)
- HDOJ 1002 - A + B Problem II
- #HDOJ-1002:A + B Problem II
- HDOJ 1002 A + B Problem II
- hdoj1002 A + B Problem II
- hdoj1002 A + B Problem II
- HDOJ 1002 A + B Problem II
- HDOJ_1002_A + B Problem II
- HDOJ 1002 A + B Problem II
- HDOJ1002: A + B Problem II