今天分享的是東方博宜 T1108 - 正整數N轉換成一個二進制數,C 的解題方法。
【題目描述】
/*
題目描述
輸入一個不大於 3276732767 的整數 nn ,將它轉換成一個二進制數。
輸入
輸入隻有一行,包括一個整數 nn (0 \le n \le 327670≤n≤32767)。
輸出
輸出隻有一行。
樣例
輸入:
100
輸出復制:
1100100
輸入:
0
輸出:
0
*/
【解題思路】
/*
本題考察的十進制轉化成二進制的方法
很簡單,就是不斷的模2,得到的結果反序組合就可以了
例如8 ,轉化成二進制的過程為
8 / 2 = 4 ...... 0
4 / 2 = 2 ...... 0
2 / 2 = 1 ...... 0
1 / 2 = 0 ...... 1
倒序取餘數,得到答案
所以本題也適合用遞歸的方法來做
*/
【參考代碼】
#include <bits/stdc .h>
using namespace std;
string fun(int n){
if (n / 2 == 0){
return to_string(n % 2);
}else{
return fun(n / 2) to_string(n % 2);
}
}
int main() {
int n;
cin >> n;
cout << fun(n) << endl;
return 0;
}