吉大考研真题-数字归一问题

℡╲_俬逩灬. 提交于 2019-11-29 18:29:53

这个题目也是数学问题,任何数经过操作都可以变为1。

操作:偶数的话除二,奇数的话乘上3再加1。

任意输入一个数,求经过操作的次数。

这里给出一个比较简单的代码。

#include <iostream>

using namespace std;
int main()
{
    int n, step = 0;
    cout << "in : ";
    cin >> n;
    while (n != 1)
    {
        if (n % 2 == 0)
            n = n / 2;        //偶数   则除2
        else
            n = 3 * n + 1;    //奇数   则乘3+1
        step++;               //一次   step++
    }
    cout <<"step : "<< step << endl;
    return 0;
}

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!