gpt4 book ai didi

c++ - 程序不工作(前导零)

转载 作者:行者123 更新时间:2023-11-28 05:28:18 25 4
gpt4 key购买 nike

您必须编写迭代过程 write_digit(d,x) 以接收数字 d 和自然数 x,并将 x 乘以数字 d 写入标准输出 (cout)。例如,调用 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);
}

最佳答案

你完全把赋值复杂化了,只做一个没有任何边缘条件的简单循环,它适用于任何数字,即使是非数字。

void write_digit(int d, int x) {
for (int i = 0; i < x; ++i) // Loop x times
std::cout << d; // Output digit
std::cout << '\n'; // Output newline
}

关于c++ - 程序不工作(前导零),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40069474/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com