剛接觸算法,感覺很奇特...這貨不是數這貨不是數.....
其實就是模擬
1,num1爲第一個,num2可以爲其他的多個數而不止是兩個,num1 += num2,然後可以繼續輸入num2
2,用字符串存數,所以這貨不是數..
3,注意進位
4,注意輸出時,99+1=00的情況
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main()
{
int i,k=0,len1,len2,maxlen,a=0,b=0;
int num1[210];
int num2[210];
char s1[210];
char s2[210];
scanf("%s", s1);
len1 = strlen(s1);
maxlen = len1;
memset(num1,0,sizeof(num1));
for(i=len1-1; i>=0; i--)
{
num1[k++] = s1[i] - '0';
}
scanf("%s", s2);
k = 0;
len2 = strlen(s2);
memset(num2,0,sizeof(num2));
for(i=len2-1; i>=0; i--)
{
num2[k++] = s2[i] - '0';
}
k = 0;
for(i=0; i<len2; i++)
{
num1[i] *= num2[i];
if(num1[i] > 10)
{
a = num1[i] / 10;
b = num1[i] % 10;
num1[i] = b;
num1[i+1] = num1[i+1] + a;
a = b = 0;
}
}
if(len2 > maxlen)
{
maxlen = len2;
}
if(num1[maxlen] != 0)
{
maxlen++;
}
for(i=maxlen-1;i>=0;i--)
{
printf("%d" ,num1[i]);
}
system("pause");
return 0;
}