[Programación de pensamiento y la práctica experimento de química Semana2 A]

Significado de las preguntas:

Aquí Insertar imagen Descripción

La figura es una estructura química de un grupo alcano, el grupo alcano tiene 6 átomos y enlaces químicos cinco, seis átomos numerados del 1 al 6, con un par de números a, b representa un enlace químico entre los átomos A y el átomo b.
Por lo tanto, con cinco pares de números pueden representar un grupo de alcanos. Nuestra misión es la detección categorías (Figura cinco) a base de parafina. Los átomos no hay medios de referencia específico, tal como (1,2), (2,3), (3,4), (4,5), (5,6) y (1,3), (2,3), (2,4), (4,5), (5,6) es esencialmente el mismo, son los grupos alcano.

entrada:

Introduce el número de grupos T (1≤T≤200000) un primer datos de comportamiento. 5 cada uno líneas de datos de dos números enteros a, b (1≤a, b≤6, un ≤b).
garantía de los datos, se introduce alcanilo uno de cinco o más.

Entrada sencilla: 2

1 2
2 3
3 4
4 5
5 6
1 4
2 3
3 4
4 5
5 6

salida:

Cada conjunto de datos, una línea de salida, el nombre Inglés de la alcanilo representante

Salida simple:

n-hexano
3-metilpentano

ideas:

Debido a que no hay forma fija de números, no es a partir de un punto de referencia, es decir, un enlace debe partir de la relación entre los puntos, el número de enlaces químicos es constante, diferentes tipos de alcanilo producen debido a las diferentes categorías de una el número de diferentes átomo de enlaces químicos, es decir, un número diferente de átomos de átomo, se puede encontrar a través de la observación, un átomo de entre los átomos y que tiene al menos un enlace químico, y hasta cuatro átomos unidos químicamente, así, creamos una hay seis elementos de la matriz, el número de átomos por átomo de Guardar y, a continuación, calcular el número de conexiones se 1,2,3,4 átomos. Si el número de conexiones es el número de átomos de 4 a 1, en comparación con el 2,2-dimetilbutano; 4 si el número de conexiones es la ausencia de conexiones es el número de átomos de 3 a 2, para la 2,3-dimetilbutano, si el número de conexiones el número total de átomos que los unen todo número átomo adyacente de 2 a 4 fue n-hexano, si el número de conexiones es el número de átomos de 3 a 1, es necesario con diferentes situaciones, en donde el átomo (número atómico de conexión 3) es 5, en comparación con 3-metilpentano, de lo contrario, para el 2-metilpentano.

código:

#include <iostream>
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
using namespace std;

void judge(int *num[])
{
	int a[7];
	memset(a,0,sizeof(int)*7);
	for(int i=0;i<5;i++)
	{
		a[num[i][0]]++;
		a[num[i][1]]++;
	}
	int c[5];
	memset(c,0,sizeof(int)*5);
	for(int i=1;i<7;i++)
	{
		int temp=a[i];
		c[temp]++;
	}
	if(c[4]==1)
	{
		printf("%s\n","2,2-dimethylbutane");
	}
	if(c[3]==2)
	{
		printf("%s\n","2,3-dimethylbutane");
	}
	if(c[2]==4)
	{
		printf("%s\n","n-hexane");
	}
	if(c[3]==1)
	{
		int temp;
		for(int i=1;i<=6;i++)
		{
			if(a[i]==3)
			{
				temp=i;
				break;
			}
		}
		int number=0;
		for(int i=0;i<5;i++)
		{
			if(num[i][0]==temp)
				number+=a[num[i][1]];
			if(num[i][1]==temp)
				number+=a[num[i][0]];
		}
		if(number==5)
			printf("%s\n","3-methylpentane");
		else
			printf("%s\n","2-methylpentane");
		
	}
}
int main(int argc, char** argv) {
	int n;
	int**num=new int*[5];
	for(int i=0;i<5;i++)
		num[i]=new int[2];
	
	scanf("%d",&n);
	getchar();
	for(int i=0;i<n;i++)
	{
		for(int i=0;i<5;i++)
		{
			scanf("%d %d",&num[i][0],&num[i][1]);
			getchar();
		}
		judge(num);
	}
	return 0;
}
Publicado 25 artículos originales · ganado elogios 8 · visitas 547

Supongo que te gusta

Origin blog.csdn.net/weixin_44034698/article/details/104633874
Recomendado
Clasificación