解题思路:
a.当输入的n是偶数时,做除以2操作
b.当输入的n是奇数时,做乘3加1操作
1.输入两个整数 i,j;
2.比较两个数的大小,从小到大循环,进行上述运算(a.b.)
3.统计i到j中每个数的循环的次数
4.比较,输出i,j及大的循环次数。
注意事项:
笔者我第一次没看懂两个地方:
1.要做循环从小到大,得出最大的。我第一次只做了两个(i,j)
2.还要比较i,j的大小,不一定i就是小的,j就是大的;反着来也要能输出正确答案(我是提交了然后没通过,很纳闷,看了别人的讲解才懂了题目是啥意思,一度还怀疑是题目错了 (>_<''))
3.小伙伴们一定要看清楚题目再敲代码呀,前期读懂题目很重要,要不后面花很多时间去改。
参考代码:
下面是我的代码,大家可以讨论讨论,我希望能和大家一起进步,进大厂。加油,我当然会有不足之处,希望大家能友好提建议。
#include <stdio.h> int main() { int i,j,temp,c,b; int max=0,num=1; //num计数,max存值 while(scanf("%d%d",&i,&j)!=EOF) //循环输入 { if(i<j) { //比较i,j的大小,c存小的,b存大的 c=i;b=j; } else { c=j;b=i; } for(;c<=b;c++) //从小到大循环 { temp=c; while(temp!=1) //1为循环结束标志 { if(temp%2==0) { temp=temp/2; num++; } else { temp=temp*3+1; num++; } } num++; if(max<=num) //比较大小,保证max的值是最大的 { max=num; } num=0; } printf("%d %d %d\n",i,j,max); //输出 max=0; //这个语句非常重要,因为是循环输入,所以每组输出完,max归0,下组继续;如果少了它,max的值为上组的最大值,就会出错。 } }
0.0分
0 人评分
C语言训练-字符串正反连接 (C语言代码)浏览:694 |
C语言考试练习题_保留字母 (C语言代码)浏览:693 |
C语言训练-计算1~N之间所有奇数之和 (C语言代码)浏览:721 |
C语言程序设计教程(第三版)课后习题8.3 (C语言代码)浏览:422 |
P1001 (C语言代码)浏览:801 |
【排队买票】 (C语言代码)浏览:900 |
DNA (C语言代码)浏览:749 |
C语言程序设计教程(第三版)课后习题8.7 (C语言代码)浏览:526 |
字符逆序 (C语言代码)求大神指出错处,运行结果尝试了也与要求一样,但就是说结果错误,不知错在哪里浏览:436 |
test 4不要直接粘贴,修改内容浏览:245 |