今天晚上看到群裡面交流的資訊,發現又出新題了,看了一下,難度還可以,是一般性的題目。事實如此,大家一說簡單,一會兒就由三星難度降為二星了...題目不少,有興趣的朋友們可以去
英雄會......
如題:
在二十進位制中,我們除了使用數字0-9以外,還使用字母a-j(表示10-19),給定兩個二十進位制整數,求它們的和。 輸入是兩個二十進位制整數,且都大於0,不超過100位;
輸出是它們的和(二十進位制),且不包含首0。我們用字串來表示二十進位制整數。
總的來說,這一題難度還可以,只要注意點沒忘記,大家應該都是沒問題的;
首先是簡單的兩個數相加「122」 + 「221」,當然就是「343」,只要進行正常加減即可;
接下來是「1aa」 + "222",結果是「3cc」;
以上這兩個例項只要將數所對應的數相加即可;
接下來考慮進製問題:
「1aa」 + "22a",結果是「3d0」;
這時我們需要考慮進製問題,並將進製標記傳到前乙個;
最後是考慮兩個數字數不同的數字,這時我們將兩個較短的乙個數首先加完,最後將長的數前面補上即可,但是這時我們得考慮之前加完的進製問題。
如對"jaa"+"aa",a+a=20,進製1;a+a+1=21;再次進製1;j+1=20;再次進製1;結果為"1010";
總體來說,這一題不是什麼演算法的問題,我們將邏輯弄清楚即可;
#include #include #include char start[21] = ;
char* calculate (char* x,char* y)
else
else //進行普通相加}}
for(i = length; i < lengtha; i++) //若x的長度長於y
else
}if(index == 1 && lengtha > lengthb)
for(i = length; i < lengthb; i++) //若y的長度長於x
else
}if(index == 1)
index = strlen(num); //此時index是num的長度,進行反轉
修訂:在進行後length位相加部分的**可進行如下優化;
for(i = 0; i < length; i++)
else
}
不足之處,還請大家指點...o(∩_∩)o 二十進位制數的加法 英雄會
今天晚上看到群裡面交流的資訊,發現又出新題了,看了一下,難度還可以,是一般性的題目。事實如此,大家一說簡單,一會兒就由三星難度降為二星了.題目不少,有興趣的朋友們可以去 英雄會.如題 在二十進位制中,我們除了使用數字0 9以外,還使用字母a j 表示10 19 給定兩個二十進位制整數,求它們的和。輸...
二十進位制數的加法
題目詳情 在二十進位制中,我們除了使用數字0 9以外,還使用字母a j 表示10 19 給定兩個二十進位制整數,求它們的和。輸入是兩個二十進位制整數,且都大於0,不超過100位 輸出是它們的和 二十進位制 且不包含首0。我們用字串來表示二十進位制整數。class program 二十進位制相加 字串...
二十進位制的加法
題目描述 在二十進位制中,我們除了使用數字0 9以外,還使用字母a j 表示10 19 給定兩個二十進位制整數,求它們的和。輸入是兩個二十進位制整數,且都大於0,不超過100位 輸出是它們的和 二十進位制 且不包含首0。我們用字串來表示二十進位制整數。分析 在第一眼看到這道題的時候,我相信你也會有乙...