输入:每行包括两个整数i,j,所有整数大于0,小于1000000
输出:按原来顺序输出i,j ,输出最大循环节长度
#include<iostream>
#include<string>
#include<stdio.h>
#define Maxsize 100 //Maxsize 为输入的数据的组数 (i,j)为一组
using namespace std;
int main()
{
long i,j,n;
long count,max=1;
int fun(int n);
for(int k=1;k<Maxsize;k++)
{
scanf("%ld %ld",&i,&j);
for(int n=i;n<=j;n++)
{
count = fun(n);
max = max >= count?max:count;
}
printf("%ld %ld %ld",i,j,max);
}
}
int fun(int n)
{ long count = 0;
while(n!=1)
{
if(n%2 == 0)
n = n/2;
else
n = 3*n+1;
count++;
}
return (count+1);
}

本文介绍了一个使用C++实现的算法,该算法用于计算给定范围内整数的最大循环节长度。通过输入两整数i和j,程序将输出对应范围内的最大循环节长度,展示了循环节计算的基本原理及其实现细节。
&spm=1001.2101.3001.5002&articleId=99738799&d=1&t=3&u=8bf4afb190f74a95a9966eb01d1261e7)
472

被折叠的 条评论
为什么被折叠?



