宇月幸成


私信TA

用户名:3350680655

访问量:13628

签 名:

题解都沉没在OJ里了..

等  级
排  名 399
经  验 4891
参赛次数 1
文章发表 47
年  龄 24
在职情况 学生
学  校
专  业 软件工程

  自我简介:

刷题打发时间,没别的事做了

解题思路:

按照题意模拟就行。题意大概是给两个数i,j,然后要求出[i, j]中满足:当前数是奇数,将当前数*3 + 1,当前数是偶数,将当前数/2最后等于1的最大操作数。

注意事项:

注意i,j大小,如果i > j,要将其互换

参考代码:

#include <iostream>

#include <cstdio>

#include <algorithm>

using namespace std;

int main() {

int l, r;

while (scanf("%d%d", &l, &r) != EOF) {

printf("%d %d ", l, r);

if (l > r) swap(l, r);

int mlen = 0, tlen = 0;

for (int i = l, temp = l; i <= r; i++, temp = i) {

tlen = 1;

while (temp != 1) {

if (temp % 2) temp = temp * 3 + 1;

else temp /= 2;

tlen++;

}

mlen = max(mlen, tlen);

}

printf("%d\n", mlen);

}

return 0;

}


 

0.0分

1 人评分

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

编程语言转换万能编程问答  

代码解释器

代码纠错

SQL生成与解释

  评论区

tlen为啥一开始是1
2023-04-09 16:50:04
  • «
  • 1
  • »