刚接触算法,感觉很奇特...这货不是数这货不是数.....
其实就是模拟
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;
}