求助,各位大佬们.
查看原帖
求助,各位大佬们.
1240622
YYAN_ZU楼主2024/5/12 16:30
想知道为什么把if(n==1)这个条件去掉后,程序就没发走了呢,但是加上又可以正常运行了

#include<iostream>
using namespace std;
typedef long long ll;
int a[100];
int main()
{
	ll n;
	cin>>n;
	a[0]=n;
	int ans=0;
	for(int i=1;;i++){
		if(n%2!=0){
		   n=n*3+1;
		   a[i]=n;
		   ans++;
		}
		else if(n%2==0){
		   n=n/2; 
		   a[i]=n;
		   ans++; 
		}
		if(n==1){ //就是这里,如果去掉就没法走了
			a[i]=n;
			break;
		}
	}
	for(int i=ans;i>=0;i--){
		cout<<a[i]<<" ";
	}
	return 0;
}
2024/5/12 16:30
加载中...