RE求助
查看原帖
RE求助
389880
CCC100楼主2024/6/17 09:19

代码:

#include <iostream>
using namespace std;
int mem[10005]; //把每次算出来的答案记录一下
int i,j;
long long f(int x,int t){
	while(1){
		if(x==1) return t;
		if((x%2)==1){
			x=3*x+1;
			t++;			
		}
		else {
			x/=2;
			t++;
		}
	}
}
int main() {
	while(cin>>i>>j){
		cout<<i<<" "<<j<<" ";
		if(i>j) swap(i,j);// 交换i j
		int ans=-1;
		for(int r=i;r<=j;r++){
			if(mem[r]!=0){  // 如果答案有被记到过就直接使用
				if(mem[r]>ans) ans=mem[r]; // 如果数列更长就修改答案
			}
			else {
				int temp=f(r,1);
				if(temp>ans) ans=temp;
				mem[r]=temp;
			}
		}
		cout<<ans<<"\n";
	}
	return 0;
}

试了三次都是RE,头文件也改过,还是不行。

2024/6/17 09:19
加载中...