我有以下代码
int x = 1;
for (x; x<=4; x++)
printf("%0*d\n",x,0);
输出
0
00
000
0000
如何输出
1
22
333
4444
我试过了:
printf("%x*d\n",x,0);
和
printf("%" + x + "*d\n",x,0);
但它不起作用。如果可能的话,我想只使用一个for循环。
答案 0 :(得分:2)
您必须实际打印x
x
次:
for (int x = 1; x <= 4; ++x) {
for (int i = 0; i < x; ++i) {
printf("%d", x);
}
printf("\n");
}
或者,因为这是C ++:
for (int x = 1; x <= 4; ++x) {
for (int i = 0; i < x; ++i) {
std::cout << x;
}
std::cout << '\n';
}
或者,您可以使用string
构造函数来创建相同字符的多个副本(参考中的#2):
for (int x = 1; x <= 4; ++x) {
std::cout << std::string(x, x + '0') << '\n';
}