PAT Nivel B 1005 Continuar (3n + 1) Conjetura (25 puntos)

Resumen del ejercicio PAT Nivel B

PAT Nivel B 1005 Continuar (3n + 1) Conjetura (25 puntos) Espero que mis ideas puedan ayudarlo.


1. Pregunta 1005

Inserte la descripción de la imagen aquíInserte la descripción de la imagen aquí

输入样例:
6
3 5 6 7 8 11
输出样例:
7 6

2. Análisis


Ingrese hasta 100 dígitos de acuerdo con el título, y el número de entrada es 1 <n <= 100; piense en usar el índice, tome el número de entrada como el subíndice de la matriz, corte este número ny compárelo con el índice [n]. Si en el índice [Si n] existe, entonces este número no es un número clave. Cambie la posición del índice [n] a 0; finalmente elimine el número 0 en la matriz de índices, complete los subíndices a su vez y finalmente envíe al revés.

(La demostración es solo de referencia, el valor del índice [n] se cambia a 0)

输入后----->
索引:3  5  6  7  8  11
--------->
算3:5 8 4 2 1;
索引:3  0  6  7  0  11
算5:8 4 2 1;
索引:3  0  6  7  0  11
算6:3 5 8 4 2 1;
索引:0  0  6  7  0  11
算7:11 17 26 13 20 10 5 8 4 2 1;
索引:0  0  6  7  0  0
算8:4 2 1;
索引:0  0  6  7  0  0
算11:17 26 13 20 10 5 8 4 2 1;
索引:0  0  6  7  0  0

Mostrado a continuación 成功代码

// 1005代码
#include<stdio.h>
#define MAXS 101
int main(){
    
    
	int n,i,j;
	scanf("%d",&n);
	int num,suo[MAXS]={
    
    0};//索引中初始为0 
	for(i=0;i<n;i++){
    
    
		scanf("%d",&num);
		suo[num]=1;//以输入值为下标,标记为1 
	}
	for(i=1;i<100;i++){
    
    
		if(suo[i]){
    
    //如果索引【i】存在 
			for(j=i;j>1;){
    
    
				if(j%2==0){
    
    
					j/=2;
				}
				else{
    
    
					j=(3*j+1)/2;
				}
				if(j<100&&suo[j]){
    
    //索引中有值存在并且j不越界 
					suo[j]=0;
				}
			}
		}
	}
	for(i=1,j=1;i<=100;i++){
    
    //从下标1开始 
		if(suo[i]!=0){
    
    //如果索引【i】不等于0则i为关键字 ,从1开始存 
			suo[j]=i;
			j++;
		}//如果索引【i】==0则i++,j不变等着存下一个 
	}
	suo[j]='\0';
	printf("%d",suo[j-1]);//按要求输出 
	for(j=j-2;j>=1;j--){
    
    
		printf(" %d",suo[j]);
	}
	return 0;
}

Inserte la descripción de la imagen aquí

Supongo que te gusta

Origin blog.csdn.net/jiaoooooo/article/details/112578832
Recomendado
Clasificación