决明子


私信TA

用户名:1428193293

访问量:1193

签 名:

等  级
排  名 3448
经  验 1926
参赛次数 0
文章发表 3
年  龄 0
在职情况 学生
学  校 山东工程职业技术大学
专  业

  自我简介:

解题思路:混沌思路,小白勿喷

注意事项:1.数据大 用long long

2.注意输入10 1 的情况 掉换i j

3.i<j 时 调换后输出时也要先输出大的 即 10 1————10 1 20

4.最好在输入i j时就输出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)

{

if(i>j)

{

p=i;//转换 

i=j;

j=p;

cout<<j<<" "<<i<<" "; //按顺序输出 

}

else

cout<<i<<" "<<j<<" ";

while(i<=j)//包括 

{

if(max2<max)

max2=max;

max=fun2(i);

i++;

}

cout<<max2<<endl;

max=max2=0;

}

}


 

0.0分

2 人评分

  评论区

很感谢这些避坑点,但是对于题中的i,j给的范围是0~1000000,int应该是足够大的吧
2021-10-27 12:32:46
  • «
  • 1
  • »