题解
2024-12-19 19:08:43
发布于:浙江
10阅读
0回复
0点赞
这道题主要还是搞清楚怎么用递归写出二进制,搞懂超简单!
核心思路:不断用十进制数除以 2,记录每次相除得到的余数,直到商为 0 为止,然后把得到的余数按照逆序的顺序排列起来,就得到了对应的二进制数。
参考代码:
#include<bits/stdc++.h>
using namespace std;
string f(int n)
{
if (n == 0)
{
return "0";
}
if (n == 1)
{
return "1";
}
return f(n / 2) + to_string(n % 2);//f(n/2)是每次进行n / 2得到的商作为下一次递归调用的参数,不断深入递归,直到商变为 0或1
// to_string(n % 2)是把余数转换为字符串
//+就是把他们拼起来
}
int main()
{
int n;
cin >> n;
cout << f(n) << endl;
return 0;
}
点个赞吧!
这里空空如也
有帮助,赞一个