c语言 大佬们来帮我看一眼!
查看原帖
c语言 大佬们来帮我看一眼!
997150
ace_12138楼主2023/11/4 20:03

一开始我是这么写的,而后我发现第一个数存错了,总是会变成 2

int main(){
	int a[1000];
	int n,i=1;
	scanf("%d",&n);
	while(1){
		a[0]=n;
		if(n%2==1){
			n=n*3+1;
			a[i]=n;
		}else{
			n=n/2;
			a[i]=n;
		}
		if(a[i]==1) break;
		++i;
	}
	for(int j = i;j >= 0;--j){
		printf("%d ",a[j]);
	}
	return 0;
}

然后我就想了个歪招

int main(){
	int a[1000];
	int n,i=0;
	scanf("%d",&n);
	int k = n; 
	while(1){
		if(n%2==1){
			n=n*3+1;
			a[i]=n;
		}else{
			n=n/2;
			a[i]=n;
		}
		if(a[i]==1) break;
		++i;
	}
	for(int j = i;j >= 0;--j){
		printf("%d ",a[j]);
	}
	printf("%d",k);
	return 0;
}

但是还是只有80分,第三个错了

2023/11/4 20:03
加载中...