UVA 100(即POJ1207)

来源:互联网 发布:中国大数据网站 编辑:程序博客网 时间:2024/05/16 15:37
题意:题目首先给出一个循环公式,对于一个整数n,当n为奇数时,n=3n+1,当n为偶数时,n=n/2,如此循环下去直到n=1时停止。现题目要求对任意输入的两个整数i、j,输出i、j之间(包括i、j)的所有数进行上述循环时的最大循环次数(包括n和1)。
#include<iostream>#include<cmath>using namespace std;int main(){    int i,j;    while(cin>>i>>j)    {        cout<<i<<' '<<j<<' ';        if(i>j) swap(i,j);        int max=0,k;        for(k=i;k<=j;k++)        {            int sum=1,p=k;            while(p!=1)            {                sum++;                if(p&1) p=3*p+1;                else p/=2;            }            if(max<sum) max=sum;        }        cout<<max<<endl;    }    return 0;}

原创粉丝点击