本文主要是介绍HDU The 3n + 1 problem,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
题目传送门:http://acm.hdu.edu.cn/showproblem.php?pid=1032
我发现自己理解英文表达的数学类的问题总是有各种各样的偏差,这种偏差不是陌生词汇带来的(0_0)……本题的重点在于ij没有说明大小,因此我们需要排下序,可以使用define也可以使用algorithm头文件。
#include<stdio.h>
#include<string.h>
#include<algorithm> //当中有min和max函数
//#define LOCAL
#define max(x,y) x>y?x:y
#define min(x,y) x<y?x:yusing namespace std;
int main(){#ifdef LOCALfreopen("input.txt","r",stdin);#endif // LOCALint i=0,j=0;while(scanf("%d %d",&i,&j)!=EOF){int temp1=min(i,j); //注意顺序!并且不要交换,只要得到范围即可!int temp2=max(i,j);int maxi=0;for(int l=temp1;l<=temp2;l++){int l2=l;int count=1;while(l2!=1){count++;if(l2%2==0)l2=l2/2;elsel2=3*l2+1;}if(count>=maxi)maxi=count;}printf("%d %d %d\n",i,j,maxi);}return 0;
}
这篇关于HDU The 3n + 1 problem的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!