c語言實現大數相加

2021-09-13 01:44:48 字數 1124 閱讀 1540

文章**:

兩個大數我們可以用陣列來儲存,然後在陣列中逐位進行相加,再判斷該位相加後是否需要進製,為了方便計算,我們將數字的低位放在陣列的前面,高位放在後面。

捕獲.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 解題思路 我先開始的思路是,再建立乙個返回鍊...