C++编写一个名为display的函数



我有这个问题编写一个名为display的函数。函数有一个正整数参数。它打印一个带水平条的图表,显示从顶部第一个数字开始的参数数字。每个酒吧应该显示从1到显示数字的数字。如果参数不是正的,则函数不应该打印任何内容。使用超过10行代码的过长解决方案可能会丢分。例如,使用以下函数的程序

我想使函数递归。我在这里做错了什么?

#include <iostream>
int display(int x) {
if (x<=0) return 0;
if (x<10) {
for (int i =1; i<=x; i++) {
std::cout << i;
}
std::cout << std::endl;
}
else
return display(x/10)+x%10;
std::cout << std::endl;
}
int main() {
display(31415);
return 0;
}

这应该产生以下输出:

123
1
1234
1
12345

但它只是显示

123

您的显示函数将被递归调用31415、3141、314、31,最后调用3,然后您的for循环将执行

for (int i =1; i<=x /*3*/; i++) {
std::cout << i;
}

其随后将打印123。

最新更新