miss


私信TA

用户名:missfan

访问量:500

签 名:

成为大佬

等  级
排  名 28295
经  验 493
参赛次数 0
文章发表 3
年  龄 1
在职情况 学生
学  校
专  业

  自我简介:

在成为大神的路上磕磕绊绊的努力着

TA的其他文章

用C语言解题
浏览:164
递归永远的神
浏览:207

解题思路:


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 人评分

看不懂代码?想转换其他语言的代码? 或者想问其他问题? 试试问问AI编程助手,随时响应你的问题:

编程语言转换

万能编程问答  

代码解释器

代码纠错

SQL生成与解释

  评论区