HDU1032

来源:互联网 发布:java程序员必看的书籍 编辑:程序博客网 时间:2024/06/05 07:27

本题实乃水题一个,但是wr了很多次,在c和c++徘徊后,发现原因在于c忘了加判断结束条件,而c++代码却过了。经过测试发现 while(cin〉〉x)中有EOF结束条件。也算是长知识了

c++

#include <iostream>using namespace std;int main(){    int a,b,t,i,max;    while(cin >> a >> b)    {        cout << a << " " << b << " ";        if(a>b)//大小不确定        {            t = a;            a = b;            b = t;        }        max = 0;        for(i = a; i<=b; i++)        {            int n = i, sum = 1;            while(n-1)//等于1时就结束            {                if(n%2)                    n = 3*n+1;                else                    n = n/2;                sum++;            }            if(sum>max)            max = sum;        }        cout << max << endl;    }    return 0;}
c语言
#include<stdio.h>int main(){    int m,n,max,i,temp;    while(~scanf("%d%d",&m,&n))    {        printf("%d %d ",m,n);                if(m>n)        {            temp=m;            m=n;            n=temp;        }         max=0;        for( i=m;i<=n;i++)        {            int flag=i, sum=1;            while(flag-1)            {                if(flag%2)                {                    flag=3*flag+1;                                                    }                else                {                    flag/=2;                                }                    sum++;            }        if(sum>max)            max=sum;        }        printf("%d\n",max);    }    return 0;}


0 0
原创粉丝点击