给你一个数n(0<n<1000000),n遵循下面的规律,当n=1,n=1;当n为偶数,n=n/2;n为奇数时,n=n*3+1; 自定义一个函数cal_step(int n)

给你一个数n(0<n<1000000),n遵循下面的规律,当n=1,n=1;当n为偶数,n=n/2;n为奇数时,n=n*3+1;
自定义一个函数cal_step(int n),输入n,按上述规律最后转为1。输出每次变化的值,并计算转换的次数


#include <iostream>
#include <string.h>

using namespace std;
int res = 0;
int cal_step(int n){
    if(n == 1) return res;
    res ++;
    if(n % 2 == 0){
        return cal_step(n/2);
    }else{
        return cal_step(n*3+1);
    }
}

int main()
{
    int n;
    cout << "请输入一个整数:\n" << endl;
    cin >> n;
    cout << cal_step(n) << endl;
    return 0;
}

#include<bits/stdc++.h>
using namespace std;

void cal_step(int n)
{
    cout<<"变化过程:"<<endl;
    int cont=0;
    while(n!=1)
    {
        if(n%2==0)
        {
            n/=2;
            cout<<n<<endl;
            cont++;
        }
        else
        {
            n=n*3+1;
            cout<<n<<endl;
            cont++;
        }
    }
    //cout<<n<<endl;
    cout<<"变化次数:"<<endl;
    cout<<cont<<endl;
}
int main() {

    int n;
    cin>>n;
    cal_step(n);
    return 0;

}