你會乘法嗎?當然會。每個人小學就開始學九九乘法表。
電腦也會乘法,你跟電腦比賽過嗎?當然電腦瞬間就可以算出來了。可是電腦在精確度方面是有限制的。int 變數型態通常是四個位元組,計有32個位元,所以能代表數字的範圍為−2,147,483,648 ~ +2,147,483,647。double 變數型態所能代表的範圍比 int 大,可高達10的16次方,即10,000,000,000,000,000。
這次的作業,你要處理的是兩個整數的相乘,第一個整數的範圍在0~ 10^32(10的32次方),第二個整數的範圍是0~99。
例如,999,999,999,999,999,999,999,999 x 11,得到的答案是 10,999,999,999,999,999,999,999,989
本作業基本要求如下:
1. 每次讀取兩個值,進行相乘運算後,印出乘積。
2. 當輸入的兩個值都是 0 時,則程式停止。
3. 必須使用陣列。
3. 必須製作函數,以呼叫進行運算。
範例輸入:
999999999999999999999999 11
0 99
12345678901234567890 0
12345678901234567890 11
98765432109876543210111222333 58
11111111111111111111111111111 99
999999999999999999999999999999 99
0 0
範例輸出:
10999999999999999999999989
0
0
135802467913580246790
5728395062372839506186450895314
1099999999999999999999999999989
98999999999999999999999999999901
作業提示:
使用scanf 讀取 %s%d,再將第一個讀取的字串,轉存成陣列,以計算乘積。
解答下載
回到作業目錄
回到首頁