我有这个问题。 编写一个名为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
答案 0 :(得分:0)
您的显示函数将以31415、3141、314、31递归地调用,最后是3,然后您的for
循环就会执行
for (int i =1; i<=x /*3*/; i++) {
std::cout << i;
}
然后将打印123。