東華OJ 基礎題69 進製轉換

2021-10-03 08:25:43 字數 918 閱讀 3672

問題描述 :

輸入乙個十進位制數,將其化成n進製數輸出(2≤n≤16)。 輸出結果時,大於等於10的數字用字母代替,a代表10,b代表11以此類推。

輸入說明 :

你的程式需要從標準輸入裝置(通常為鍵盤)中讀入多組測試資料。每組輸入資料由一行組成,每行有2個數,分別代表十進位制數m(0≤ m < 2^31)和進製n(2≤n≤16),它們以空格分隔,在行首和行尾沒有多餘的空格。

輸出說明 :

對每組測試資料,你的程式需要向標準輸出裝置(通常為啟動該程式的終端)依次輸出一組對應的答案:輸出10進製數轉換後的n進製數。所有資料前後沒有多餘的空格,兩組資料之間也沒有多餘的空行。

輸入範例 :

100 10

100 15

輸出範例:

1006a

總結

1.前面已經做過好幾道類似的題,沒什麼難度。在教科書上學到乙個函式strrev(); 這樣就不用在遍歷反向輸出了,直接用就可以了。

2.puts(str)會自動換行,不需要再加上換行符,很nice;

函式裡面有個strrev(),可實現字串的逆序輸出,只要我函式用的好,就可以省略很多**,哈哈…

3.唯一需要說的就是輸入的十進位制整數為0的特殊情況,要考慮全面

4.這點很重要,也容易忽略。就是在字串的結尾手動加入

str[i]=』\0』;

表示字串的結束

#include#include#includevoid dton(int s, int n);

int main()

return 0;

}void dton(int s, int n)

str[i]='\0';

strrev(str);

puts(str);

}

東華OJ 69 進製轉換

問題描述 輸入乙個十進位制數,將其化成n進製數輸出 2 n 16 輸出結果時,大於等於10的數字用字母代替,a代表10,b代表11以此類推。輸入說明 你的程式需要從標準輸入裝置 通常為鍵盤 中讀入多組測試資料。每組輸入資料由一行組成,每行有2個數,分別代表十進位制數m 0 m 2 31 和進製n 2...

東華oj 基礎題第32題

32 完數個數 問題描述 完數的定義 如果乙個大於1的正整數的所有真因子 不包括自己的那些因子 之和等於它的本身,則稱這個數是完數,比如6,28都是完數 6 1 2 3 28 1 2 4 7 14。本題的任務是判斷兩個正整數之間完數的個數。輸入說明 第一行是乙個正整數n,表示測試例項的個數,然後就是...

東華oj 基礎題第40題

40 分拆素數和 問題描述 把乙個偶數拆成兩個不同素數的和,有幾種拆法呢?說明 比如10,可以拆成3 7和5 5以及7 3,但是3 7與7 3相同,只算一種,5 5由於兩個素數相同,不計算在內。因此,10的拆法只有一種。輸入說明 首先輸入乙個t 不超過500 然後輸入t個正的偶數,其值不會超過100...