HDOJ 1002 杭电 OJ1002 题
题目网址也就是大数加法 一直CE 可是我本地运行就可以 不知道哪里错了 求指导
思路这样 首先把两个 作为字符串保存到数组
cti函数 对于每个数组的元素都减去‘0’ 这样就可以当做int用了
sum函数求和并输出;
http://acm.hdu.
程序代码:
#include<stdio.h> #include<string.h> void cti(char A[], char B[]); void sum(char A[], char B[], int C[]); int main() { int t,i; scanf("%d", &t); char A[1000], B[1000];//9 int C[1002]= {0}; for(i=0;;i<t; i++) { scanf("%s",A); scanf("%s",B); printf("%s + %s = ",A,B); cti(A,B); sum(A,B,C); printf("\n\n"); } } void cti(char A[] ,char B[]) { int s1, s2; s1 = strlen(A); s2 = strlen(B); int i; for (i=0;i<s1;i++) A[i]=A[i]-'0'; for (i = 0; i < s2; i++) B[i]=B[i]-'0'; } void sum(char A[], char B[], int C[]) { int s, s1, s2; s1 = strlen(A); s2 = strlen(B); s=s1>s2?s1:s2; int i; for (i = 0; i < s1&&i<s2; i++) {C[i] = A[s1-1-i] + B[s2-1-i];} if(i==s1) for(;i<s;i++) C[i]+=B[s2-1-i]; for (i = s-1 ; i >= 0; i--) if(C[i]>=10) {printf("%d",C[i]-10); C[i+1]+=1; } else printf("%d",C[i]); }