百練2981 大整數加法

 

剛接觸算法,感覺很奇特...這貨不是數這貨不是數.....
其實就是模擬
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;
}


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章