PAT乙 1022 D進製的A B 20 分

2021-10-19 19:37:49 字數 1769 閱讀 6215

輸入兩個非負 10 進製整數 a 和 b (≤2

30​​−

1)

(≤2^​​ −1)

(≤230​

​−1)

,輸出 a+b 的 d (1輸入格式:

輸入在一行中依次給出 3 個整數 a、b 和 d。

輸出格式:

輸出 a+b 的 d 進製數。

輸入樣例1:

123 456 8

輸出樣例1:

3.2.1

輸入樣例2:

14.1.28 10.16.27

輸出樣例2:

1103

分析:

進製轉換過程就是不斷的除進製取模,並儲存到陣列中

部分正確的可能原因: 沒有對sum=0進行特判

也可以用string或者vector等容器 來儲存,最後reverse,即把所有的元素逆序。

(1) 陣列儲存

#include

#include

#include

#include

using

namespace std;

intmain()

; cin >> m >> n >> p;

sum = m + n;

if(sum==0)

while

(sum !=0)

for(

int k = i-

1; k >=

0; k--

)}

(2)vector容器

#include

#include

#include

#include

using

namespace std;

intconvert

(int k,

int p)

;int

main()

else

reverse

(ans.

begin()

, ans.

end())

;//最後逆序輸出

for(it = ans.

begin()

; it != ans.

end();

++it)

}}

(3)stirng去儲存進製數

#include

#include

#include

#include

using

namespace std;

intconvert

(int k,

int p)

;int

main()

else

reverse

(str.

begin()

, str.

end())

; cout << str << endl;

}}

以上三種均可。

PAT(乙) 1022 D進製的A B 20

時間限制 100 ms 記憶體限制 65536 kb 長度限制 8000 b 判題程式 standard 作者 chen,yue 輸入兩個非負10進製整數a和b 230 1 輸出a b的d 1 d 10 進製數。輸入格式 輸入在一行中依次給出3個整數a b和d。輸出格式 輸出a b的d進製數。輸入樣...

1022 D進製的A B

輸入兩個非負10進製整數a和b 230 1 輸出a b的d 1 d 10 進製數。輸入格式 輸入在一行中依次給出3個整數a b和d。輸出格式 輸出a b的d進製數。輸入樣例 123 456 8輸出樣例 1103 按照進製轉換的公式,得出的餘數要反過來輸出。所以要先把計算出的餘數儲存在陣列中,但是陣列...

1022 D進製的A B

分析 其實就是把十進位制數a b的和轉換為d進製數 模擬十轉二的除基取餘法 思路 為了防止不必要的麻煩,a和b還是用long吧 除基取餘 將a b的和除以d,取每次的餘數,直到商為0 不能直接輸出餘數,這樣是反的。放在乙個陣列裡倒著輸出 include using namespace std int...