1022 D進製的A B 20分

2022-08-18 02:21:11 字數 887 閱讀 5564

1022 d進製的a+b (20分)

輸入兩個非負 10 進製整數 a 和 b (≤2​30​​−1),輸出 a+b 的 d (1輸入在一行中依次給出 3 個整數 a、b 和 d。

輸出 a+b 的 d 進製數。

123 456 8

1103

**講解 :剛開始看到這個題的時候我上來就覺得這不是就是遞迴嗎,三下五除二,就用遞迴寫了乙個。

總有倆個測試點過不去我冥思苦想,忽然想到是不是系統棧不夠用了,我測了一下大數,發現負數,我明白了

當進製很小的時候溢位了,我換成long long 還是不行數字太多,最後想了想我幹嘛要一定讓它儲存輸出呢

乙個乙個輸出不就完了嗎,而且編碼很容易。

#include//錯誤版本

int  f(int n,int d)

else

}int main()

#include//遞迴版本

void   f(int n,int d)

else

}int main()

return 0;

}

#include//正確陣列版本

int main()

while(q)

m[count++]=r;

int i;

for(i=count-1;i>=0;i--)

printf("%d",m[i]);

printf("\n");

}return 0;

}

1022 D進製的A B 20 分

注意 do while和while的區別,do while至少執行一次,while可能會直接跳過,碰到臨界值時是不同的 如果a b 0,此時直接用while出錯,要用do while 輸入兩個非負 10 進製整數 a 和 b 2 30 1 輸出 a b 的 d 1輸入在一行中依次給出 3 個整數 a...

1022 D進製的A B 20分

題目位址 輸入兩個非負 10 進製整數 a 和 b 2 30 1 輸出 a b 的 d 1輸入格式 輸入在一行中依次給出 3 個整數 a b 和 d。輸出格式 輸出 a b 的 d 進製數。輸入樣例 123 456 8 輸出樣例 進製轉換 p進製改十進位制 int n 0,product 1 n為結...

1022 D進製的A B 20 分

輸入兩個非負 10 進製整數 a 和 b 230 1 2 1 230 1 輸出 a b 的 d 1輸入格式 輸入在一行中依次給出 3 個整數 a b 和 d。輸出格式 輸出 a b 的 d 進製數。輸入樣例 123 456 8輸出樣例 1103題解 這個題無非是乙個進製轉換問題,可以先把進製數的次方...