这一题我把递归和非递归写在了一起,注释掉的是递归,没注释的是非递归。
**仅供有需要的人以参考,如有错误请纠正我**
#include<iostream>
/*
unsigned long f(int n)
{
if (n % 2 == 0)
return n / 2;
else
return f(3 * n + 1);
}
*/
unsigned long f(int n)
{
if (n % 2 == 0)
return n / 2;
else
{
n = n * 3 + 1;
if (n % 2 == 0)
return n / 2;
}
}
int main()
{
std::cout << f(13) << std::endl;
return 0;
}