第一次在UVa上提交题,WA了几次,囧,全是英文,啊。因为木有考虑a和b的大小问题,还有输出a和b的顺序。( ̄ε(# ̄)
题目大意:例子的意思是,输入一个数,如果这个数是奇数,则执行n=3*n+1,否则n=n/2,直到n=1,计算这个数一直到1一共计算了几步,即为sum;
输入a,b两个数,输出 a至b之间所有sum的最大值max。
# include <stdio.h> int main() { int a,b,a_back,b_back,i,t,n,sum,max; while(scanf("%d %d",&a,&b)!=EOF) { max=0; a_back=a; b_back=b; if(a>b) { a_back=b; b_back=a; } for(i=a_back;i<=b_back;i++) { sum=1; n=i; while(n>1) { if(n%2==0) { n=n/2; } else { n=3*n+1; } sum++; } if(max<sum) { t=max; max=sum; sum=t; } } printf("%d %d %d\n",a,b,max); } return 0; }