首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

递归小题目,该怎么解决

2013-07-08 
递归小题目* * * ** * ** **** ** * ** * * *递归做[解决办法]inline void output(int num){for(int i0i

递归小题目
* * * *
* * *
* *
*
*
* *
* * *
* * * *
递归做
[解决办法]


inline void output(int num)
{
for(int i=0;i!=num;++i)
cout << '*';
cout << endl;
}
void recursion(short num)
{
if(!num)
return;
output(num);
recursion(num-1);
output(num);
}

[解决办法]
#include <iostream>
using namespace std;
string out(int k)
{
return !k?"":out(k-1)+"*";
}
string star(int k)
{

return !k?"":out(k) + '\n' + star(k-1) + (k==1?"":"\n") + out(k);
}
int main()
{
cout<<star(4);
getchar();
}

使用字符串连接来缩短点,可惜star那里嵌套了个三目表达式,不然会多一个换行

热点排行