我已经尝试过寻找它,他们给了我以下方法:
int x = 1;
while (x != 11)
{
x = x * 10 + (x+1);
}
cout<<x;
output: 12345678910
虽然这很好,但我所有的问题是,如果第一个数字为零,它将忽略该数字。这样就可以了
0 * 10 + (0+1)
,它将显示为“ 1”而不是“ 01”。是否有一种很好的替代方法以这种方式将数字加在一起?
答案 0 :(得分:3)
目前尚不清楚您为什么要尝试这样做,但是从字符串或数字的角度考虑可能会有所帮助。对于数字,1和01之间没有区别,但是对于字符串,则没有区别。因此,如果差异对您很重要,请使用字符串。
例如,您可以简单地使用<<
运算符在移动时将单个数字转换为字符串:
int x = 0;
while(x<11)
{
cout << x;
x++;
}
输出:
012345678910
答案 1 :(得分:1)
您可能正在寻找位集。在一个非常快速的示例中...
#include <iostream>
#include <bitset>
using namespace std;
int main(){
int input;
bitset<32> result(0); //32 bits in an int
cin >> input;
result = input;
cout << result;
return 0;
}