角谷猜想 逆 对于一个整数n,如果n为偶数,则除以二,如果n为奇数,则乘三加一。

对于一个整数n,如果n为偶数,则除以二,如果n为奇数,则乘三加一。

输入输出格式
输入格式:
共一行,两个整数,m,n。

输出格式:
每行一个整数,输出所有经过n次操作(见题目描述)能得到m的正整数。(从小到大)

我的代码,望改正,或重制(不穷举)

#include<bits/stdc++.h>
using namespace std;
int m,n;
double po;
bool everr=false;
bool pd(double a)
{
    if(a-int(a)==0)return true;
    else return false;
}
bool jo(int a)
{
    if(a%2==0)return true;
    else return false;
}
void doo(double z,int sum)
{
    if(everr==false){sum=0;everr=true;}
    if(pd(z)&&z!=0&&sum==n)
        printf("%f\n",z);

    else if(pd(z)&&sum<n)
    {
        if(jo(z))
        {   
            if(pd(z/2))doo(z/2,sum+1);
            if(pd((z-1)/3))doo((z-1)/3,sum+1);
        } 
        if(!jo(z))
        if(pd(z*2))doo(z*2,sum+1);

    }
}
int main()
 {
    scanf("%d%d",&m,&n);
    if(m==1)po=pow(2,n);
     else if(m==0)return 0;
     else po=pow(m,n);
    doo(m,0);
    return 0;
 }

https://blog.csdn.net/liuyuxin123/article/details/78634270
https://blog.csdn.net/cldance/article/details/53573074