poj1503 大數加法

2022-05-16 20:36:09 字數 1199 閱讀 2568

先講一種錯誤的做法:wa了n次,大神一定幫我看一下//看到有說陣列大小開到250,我改了之後還是不//思路是將arr這個陣列的每一行附上輸入的值,然後求每列所有數之和,當然進製

//maxlen記錄這個二維陣列的有用就是可以加的長度列數,row用來記錄行數,那就不用遍歷二維陣列所有行列

#include#include#includeint main()

row++;//row記錄行數

if(maxlen(247-maxlen);column--)//從最後一列開始加

我沒用這個方法,我把遍歷範圍放的盡量大,但是最多進兩位,所以247-maxlen應該是合理的了,還是不行,我開到遍歷完每一列,也不行,求解?

第二種方法:

始終保持乙個fin陣列用來放結果,每次的輸入放在input中,memset下fin為0,將input陣列從右往左,分別加到fin的第乙個,第二個..元素,搜獲到的技巧:

for(i=len-1,j=0;i>=0;i--,j++)

for迴圈上寫兩個變數的初值及變化,增加可讀性

#include#include

#include

intmain()

;

intlen,temp,i,j;

while(scanf("

%s",input)!=eof)

//迴圈結束後,j++此時為finde下乙個待決定位

//處理字串讀完,但是仍有進製的情況

while(temp>0

)

}i=103

;//倒序輸出,去掉前導0,fin裡面可能全是0,i此時為-1,輸出0

while(fin[i]==0

)//000+00

if(i<0

) printf(

"%d\n

",0);

else

printf("\n

");}

return0;

}

總結:這題坑在000+00,999+1

收穫:int 陣列,將第乙個以int a[5]=,可將第乙個元素賦為0,其餘元素為0

char就不行,應該是編譯器決定的,所以gcc最好memset,但是以上都僅限scanf

如果用賦值,最好memset

第三種:看不懂

UVa 424 整數查詢 poj 1503

思路 就是按照白書上的定義結構體bign及相關操作。本來打算精簡的,後來發現這個已經挺精簡的了。注意 自己需要注意的 string.h和string標頭檔案是不一樣的。sprintf.h在stdio.h裡而不是string.h裡。交 時出現的紅色波浪線好像是瀏覽器的原因,不影響交題。還有,while...

1005 大數加法

1005 大數加法 基準時間限制 1 秒 空間限制 131072 kb 分值 0 難度 基礎題 題目位址 給出2個大整數a,b,計算a b的結果。input 第1行 大數a 第2行 大數b a,b的長度 10000 需注意 a b有可能為負數 output 輸出a binput示例 68932147...

1005 大數加法

給出2個大整數a,b,計算a b的結果。input 第1行 大數a 第2行 大數b a,b的長度 10000 需注意 a b有可能為負數 output 輸出a binput示例 68932147586 468711654886output示例 537643802472 include include...