hailstone序列的定义如下
下面给出非递归实现
#include<iostream>
#include<vector>
using namespace std;
vector<int>obj;
vector<int> hailstone(int n)
{
vector<int>res;
while (n != 1)
{
if (n % 2 == 0)
{
res.push_back(n);
n /= 2;
}
else
{
res.push_back(n);
n = 3 * n + 1;
}
}
if (n == 1)
{
res.push_back(1);
}
return res;
}
int main()
{
vector<int>res;
res = hailstone(10);
for (int i = 0; i <res.size(); i++)
{
cout << res[i] << ends;
}
system("pause");
return 0;
}