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]);
}







