解题思路:
利用for循环逐个遍历输入数之间的数,计算每一个数的周期,找到最大周期即可
注意事项:
本题有一个坑,输入的第一个数不一定是大于第二个数的,所以需要找到输入两数中的较大值与较小值
参考代码:
#include<iostream>
using namespace std;
int main()
{
int a, b;//用于接收用户输入的数据
int k = 1;//用于找到每一个数的周期长度
int l = 0;//用于记录最大周期长度
while (cin >> a >> b)
{
for(int i=min(a,b);i<max(a,b)+1;i++)//用i接收输入数中的最小数
{
int j = i;
while(j!=1)//当最后数值为1时进入下一个数的计算
{
if (j % 2 == 0)//偶数
{
j = j / 2;
k++;//周期+1
}
else if (j % 2 != 0)//奇数
{
j = j * 3 + 1;
k++;
}
}
if (k > l)l = k;//拿到最大周期数
k = 1;//重置k值
}
cout << a << " " << b << " " << l << endl;
l = 0;//重置l值
}
return 0;
}
0.0分
0 人评分
2^k进制数 (C++代码)使用递归方法浏览:736 |
C语言程序设计教程(第三版)课后习题7.2 (C语言代码)浏览:657 |
C语言训练-斐波纳契数列 (C语言代码)浏览:1270 |
C语言训练-计算一个整数N的阶乘 (C语言代码)浏览:982 |
最长单词 (C语言代码)浏览:1474 |
C语言程序设计教程(第三版)课后习题6.4 (C语言代码)浏览:639 |
C语言程序设计教程(第三版)课后习题1.5 (C语言代码)浏览:644 |
C语言程序设计教程(第三版)课后习题8.3 (C语言代码)浏览:1110 |
C语言程序设计教程(第三版)课后习题8.9 (C语言代码)浏览:897 |
C语言程序设计教程(第三版)课后习题5.7 (C语言代码)浏览:537 |