我正在尝试创建一个程序,当您输入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çoisAndrieux