我想我已经差不多了,但我觉得我正在试图弄清楚这一点。 无需使用字符串或数组即可实现out cout的挑战。我以56作为例子,56应该等于111000,事实并非如此,因为它通过罚款直到7,然后数字等于数字* 2 +数字%2使其等于15并输出全1。 Idk了,这会把我赶到月球和后面。将C十进制转换为无数组的二进制
#include <iostream>
using namespace std;
int main()
{
int number = 0;
int n = 1;
int x = n;
cin>>number;
cout<<n%2;
while(n <= number)
{
if(n%2 == 0)
{
n = n*2;
cout<<0;
}
else
{
n = n*2 + n%2;
cout<<n%2;
}
}
}
好的解决方案,但不需要每次调用pow。你可以从i = 2^64开始,每次迭代除以2(移一)。 – patros
我不能使用数学函数,没有幂:( – victorsh
我已经更新了解决方案与patros的建议,并添加了一种替代方法。 – DXsmiley