我正在尝试创建一个程序,当您输入 1 或 0 时,它会将其翻转为相反的数字,并将其附加到末尾。然后它应该对整个数字重复此过程。
例子:
输入 - 1
迭代次数 - 3
预期输出 - 10010110
实际输出 - 1
#include <iostream>
#include <string>
std::string num;
std::string futureNum;
int iterations = 1;
int main()
{
std::cout << "number to start with (1 or 0)";
getline (std::cin, num);
std::cout<<"\nIterations:";
std::cin>>iterations;
while (iterations > 0) {
for(int i = 0;i<=num.length();i++)
{
futureNum[i]=((num[i]-48)^1)+48;
}
num.append(futureNum);
futureNum="";
iterations--;
}
std::cout<<num<<std::endl;
}
最佳答案
我最终通过将 futureNum[i]=((num[i]-48)^1)+48;
更改为 futureNum.push_back(((num[i ]-48)^1)+48);
,然后将 futureNum="";
替换为 futureNum.clear();
感谢 François Andrieux
关于c++ - 应该翻转数字的程序输出不正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52305076/