c++ - 应该翻转数字的程序输出不正确

标签 c++

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

相关文章:

c++ - 检查应用程序是否安装在 MAC OS X 上?

c++ - 从 C++ 调用 Cython 函数

c++ - 使用 C++14 lambda 测量任意函数的执行时间

c++ - Maven NAR 插件在更新到 3.3.0 时在 Windows.h 中出现很多错误

c++ - 为支持多种 POD 类型同时最大限度地提高二进制兼容性,面向公众的 API 的推荐设计是什么?

c++ - 以 24 小时格式比较 C/C++ 中的小时数

c++ - "No default constructor"为类类型

c++ - 错误 : "no member named ' uint8_t' in the global namespace"on MacOS

c++ - vector 量化到方向码字

c++ - 返回 boolean 数组