二十進位制數的加法 英雄會

2021-06-20 02:17:34 字數 1499 閱讀 1582

今天晚上看到群裡面交流的資訊,發現又出新題了,看了一下,難度還可以,是一般性的題目。事實如此,大家一說簡單,一會兒就由三星難度降為二星了...題目不少,有興趣的朋友們可以去

英雄會......

如題:

在二十進位制中,我們除了使用數字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。我們用字串來表示二十進位制整數。分析 在第一眼看到這道題的時候,我相信你也會有乙...