【发布时间】:2016-10-16 10:56:15
【问题描述】:
您必须编写一个迭代过程 write_digit(d,x),它接收一个数字 d 和一个自然数 x,并在标准输出 (cout) 中写入数字 d 的 x 倍。例如,调用 write_digit(3,5) 写入 33333,而调用 write_digit(5,3) 写入 555。
我对这段代码有疑问,它与前导零有关。例子: write_digit(0,3) -> 000 -> 我的输出:0(不足为奇)
如果允许我使用 iomanip,问题将在 1 分钟内解决
if (d == 0) cout << setw(x) << setfill('0') << "";
但是,我只能使用 iostream 和字符串。
#include <iostream>
using namespace std;
void write_digit(int d,int x) {
int original_d = d;
for (int i = 1; i < x; ++i) d = d*10 + original_d;
if (x == 0) cout << "";
else cout << d;
}
int main () {
int d,x;
cin >> d >> x;
write_digit(d,x);
}
【问题讨论】:
标签: c++ formatting