【发布时间】:2015-10-25 19:55:44
【问题描述】:
使用递归实现以下功能。不要使用任何局部变量或循环。
无效模式(无符号整数)
// 前置条件:n > 0;
// 后置条件:输出由整数行组成。第一行
// 是数字 n。下一行是数字 2n。下一行是
// 数字 4n,以此类推,直到您达到大于大于的数字
// 4242. 然后这个数字列表向后重复,直到你回来
// 到 n.
/* n = 840 的示例输出:
840
1680
3360
6720
6720
3360
1680
840 */
//这是我的代码
#include <iostream>
using namespace std;
void pattern(unsigned int n)
{
if(n > 0)
{
cout << n << endl;
return pattern(n * 2);
}else if( n > 4242)
{
return pattern(n / 2);
}
}
int main()
{
pattern(840);
return 0;
}
//我的代码只是不断加倍n,并没有分回到原来的n。
【问题讨论】: