hoj1032

作者: 董玉恒_算法训练营 | 来源:发表于2019-04-17 20:28 被阅读0次

1032

#include<iostream>

#include<cstdio>

using namespace std;

int num;

int algorithm(int n){

if(n==1)

return 1;

else if(n%2==1){

n=3*n+1;

num=algorithm(n)+1;

}

else if(n%2==0){

n=n/2;

num=algorithm(n)+1;

}

return num;

}

int main(){

int n,m,max,result,kase;

while(scanf("%d%d",&n,&m)!=EOF){

kase=0,max=0;

if(n>m){

int temp=n;

n=m;

m=temp;

kase=1;

}

for(int i=n;i<=m;i++){

num=0;

result=algorithm(i);

if(result>max)

max=result;

}

if(kase==1)

cout<<m<<" "<<n<<" "<<max<<endl;

else

cout<<n<<" "<<m<<" "<<max<<endl;

}

return 0;

}

这道题用循环也可以弄出来,但我想尝试一下递归,果然不出所料,第一次就错了。看来递归还是没搞懂。

相关文章

  • hoj1032

    1032 #include #include using namespace std; int n...

网友评论

      本文标题:hoj1032

      本文链接:https://www.haomeiwen.com/subject/cpeowqtx.html