[La pensée et l'expérience pratique de la chimie Semaine2 A Programmation]

Signification des questions:

Insérer ici l'image Description

La figure est une structure chimique d'un groupe alcane, le groupe alcane a 6 atomes de carbone et des liaisons chimiques cinq, six atomes numérotés de 1 à 6, avec une paire de nombres a, b représente une liaison chimique entre les atomes a et l'atome b.
Ainsi, avec cinq paires de nombres peuvent représenter un groupe d'alcanes. Notre mission est basée sur les catégories de dépistage de paraffine (figure cinq). Atomes aucun moyen de référence spécifique, tels que (1,2), (2,3), (3,4), (4,5), (5,6) et (1,3), (2,3), (2,4), (4,5), (5,6) est essentiellement le même, ce sont les groupes alcane.

entrée:

Entrer le nombre de groupes T (1≤T≤200000) une première des données comportementales. 5 chacune des lignes de données de deux nombres entiers a, b (1≤a, b≤6, un ≤ b).
garantie des données, alcanyle est entré dans l' un des cinq ou plus.

Simple Entrée: 2

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

sortie:

Chaque ensemble de données, une ligne de sortie, le nom anglais du représentant alcanyle

Sortie simple:

n-hexane
3-méthylpentane

idées:

Parce qu'il n'y a pas de forme fixe de chiffres, il ne démarre pas à partir d'un point de référence, à savoir, un lien doit commencer par la relation entre les points, le nombre de liaisons chimiques est constant, différents types de alcanyle se produire en raison des différentes catégories d'une le nombre de différents atomes de liaisons chimiques, à savoir un nombre différent d'atomes atome, peut être trouvé par l'observation, un atome entre les atomes et ayant au moins une liaison chimique, et jusqu'à quatre atomes chimiquement liés, ainsi, nous créons un il y a six éléments de la matrice, le nombre d'atomes par atome enregistrer, puis calculer le nombre de connexions sont 1,2,3,4 atomes. Si le nombre de connexions est le nombre d'atomes de 4 à 1, par rapport au 2,2-diméthylbutane; 4 si le nombre de connexions est l'absence de connexions est le nombre d'atomes de 3 à 2, pour le 2,3-diméthylbutane, si le nombre de connexions le nombre total d'atomes de liaison tout nombre d'atomes adjacents de 2 à 4 est le n-hexane, si le nombre de connexions est le nombre d'atomes de 3 à 1, il est nécessaire dans des situations différentes, dans lequel l'atome (numéro atomique de connexion 3) est 5, par rapport à 3-méthylpentane, sinon, pour le 2-méthylpentane.

code:

#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;
}
Publié 25 articles originaux · éloge de won 8 · vues 547

Je suppose que tu aimes

Origine blog.csdn.net/weixin_44034698/article/details/104633874
conseillé
Classement