文章**:
兩個大數我們可以用陣列來儲存,然後在陣列中逐位進行相加,再判斷該位相加後是否需要進製,為了方便計算,我們將數字的低位放在陣列的前面,高位放在後面。
捕獲.jpg
#include#includeint main(),n2[10000]=;
int result[10001]=,t1[10000]=,t2[10000]=;
int len,len1,len2;
int i,j;
printf("請輸入第乙個數:");
scanf("%s",&n1);
printf("請輸入第二個數:");
scanf("%s",&n2);
printf("n1=%s\n",n1);
printf("n2=%s\n",n2);
len1=strlen(n1);
len2=strlen(n2);
printf("len1=%d len2=%d\n",len1,len2);
if(len1>len2)else
for(i=0,j=len1-1;j>=0;i++,j--)
for(i=0,j=len2-1;j>=0;i++,j--)
printf("t1=");
for(i=0,j=len-1;j>=0;i++,j--)
printf("\nt2=");
for(i=0,j=len-1;j>=0;i++,j--)
printf("\n");
for(i=0;i9)
} if(result[len]>0)
printf("result=");
for(i=len-1;i>=0;i--)
printf("\n");
return 0;
}
關鍵部分方便理解記憶:
if(len1>len2)else
for(i=0,j=len1-1;j>=0;i++,j--)
for(i=0,j=len2-1;j>=0;i++,j--)
for(i=0;i9)
} if(result[len]>0)
for(i=len-1;i>=0;i--)
C語言實現超大數相加
思路 不考慮輸入非法的情況 超大數無法使用char int float double進行資料儲存,所以使用陣列進行資料儲存,且資料為ascii碼的形式 include include include define max 256 define carry flag 9 1 將輸入的大數存放起來 vo...
Go語言實現兩個大數相加
當兩個數和超過int64時,就不能用提供的相加操作,也就是 兩個很大的數相加時,怎樣求得結果。思路也就是人計算兩個數時的思路,從末尾開始相加,該進製進製,並記錄下進製,從末尾往首計算 兩個長度不一的數,以短為準。給出例項 有待優化 package main import bufio fmt os s...
兩數相加 c語言實現
給定兩個非空鍊錶來表示兩個非負整數。位數按照逆序方式儲存,它們的每個節點只儲存單個數字。將兩數相加返回乙個新的鍊錶。你可以假設除了數字 0 之外,這兩個數字都不會以零開頭。示例 輸入 2 4 3 5 6 4 輸出 7 0 8 原因 342 465 807 解題思路 我先開始的思路是,再建立乙個返回鍊...