重复printf显示一个整数

时间:2015-05-10 23:39:11

标签: c++

我有以下代码

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循环。

1 个答案:

答案 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';
}