aa


私信TA

用户名:zsh12

访问量:1860

签 名:

等  级
排  名 11123
经  验 1048
参赛次数 0
文章发表 3
年  龄 0
在职情况 学生
学  校 哎哟喂
专  业 搬砖

  自我简介:

解题思路:从m到n一个一个遍历然后进行比较大小,最后输出最大值.
注意事项:在for循环哪里要创建一个中间变量j来保存i的值,再进行遍历。不能直接用i,最后会i一直为1进入一个死循环。

参考代码:

#include <iostream>

using namespace std;

int main()

{

    int m,n;

    while(cin>>m>>n)//循环输入

    {

        int max=0;//中间比较数

        cout<<m<<" "<<n<<" ";

        if(m>n)//判断m,n的大小,使得m<n。

        {

            int t=m;

            m=n;

            n=t;

        }

        for(int j=m; j<=n; j++)//从m到n一个一个遍历

        {

            int sum=1;//记录每次遍历的次数

            int i=j;

            while(i!=1)//判断停止条件

            {

                if(i%2==0)

                {

                    i=i/2;

                    sum++;//次数++

                }

                else

                {

                    i=i*3+1;

                    sum++;//次数++

                }

            }

            if(sum>max)//每次的次数与前面的最大作比较

                max=sum;

        }

        cout<<max<<endl;//输出最大的次数

    }

    return 0;

}


 

0.0分

5 人评分

  评论区

你这时间不超限么
2023-02-18 19:10:20
用了long long 直接输出i j 都不行

#include<iostream>
using namespace std;
int fun(long long int k)
{
    if(k%2!=0)
	k=k*3+1;
	else
	k=k/2;
	return k;
}
int fun2(long long int k)
{
	long long int sum=1;
	while(k!=1)
	{
	k=fun(k);
	sum++;
		}
	return sum;
}

int main()
{
	long long int i,j;
	long long int p,max=0,max2=0;
	while(cin>>i>>j)
	{
		cout<<i<<" "<<j<<" ";
		if(i>j)
		{
			i=p;
			i=j;
			j=p;	
		}
		while(i<=j)
		{
		if(max2<max)
		max2=max;
		max=fun2(i);
		i++;
		}
		cout<<max2<<endl;
		max=max2=0;
	}
	
}
2021-03-11 20:45:27
求大佬解答,这个样例都能通过,有什么特殊情况吗?

#include<iostream>
using namespace std;
int fun(int k)
{
    if(k%2!=0)
	k=k*3+1;
	else
	k=k/2;
	return k;
}
int fun2(int k)
{
	int sum=1;
	while(k!=1)
	{
	k=fun(k);
	sum++;
		}
	return sum;
}

int main()
{
	int i,j,p,max2=0,max=0;
	while(cin>>i>>j)
	{
	    p=i;
		while(i<=j)
		{
		if(max2<max)
		max2=max;
		max=fun2(i);
		i++;
		}
		cout<<p<<"  "<<j<<"  "<<max2<<endl;
		max=max2=0;
	}
	
}
2021-03-11 20:09:10
  • «
  • 1
  • »