[プログラミング思考と実践Week2の化学実験A]

質問の意味:

ここに画像を挿入説明

図は、アルカン基の化学構造である、アルカン基は、6個の原子番号の組で、1〜6の番号を付け、6個の原子と化学結合5を有し、bが原子と原子Bとの間の化学結合を表します。
このように、数字の5対とアルカンの基を表してもよいです。私たちの使命は、パラフィン系のカテゴリー(図5)をスクリーニングすることです。原子のない特定の基準例えば(1,2)等の手段、(2,3)、(3,4)、(4,5)、(5,6)及び(1,3)、(2,3)、 (2,4)、(4,5)、(5,6)が本質的に同じである、アルカン基です。

入力:

グループの数T(1≤T≤200000)最初の行動データを入力します。二つの整数、B(1≤a、b≤6、5本の各データ線 ≤b)。
データ保証は、アルカニルは、5つ以上のいずれかを入力します。

簡単な入力:2

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

出力:

データの各セット、出力ライン、代表アルカニルの英語名

シンプルな出力:

n-ヘキサン
-3-メチルペンタン

アイデア:

数字のない定型がないので、それは基準点から開始されていない、すなわち、結合はドット間の関係から開始する必要があり、化学結合の数が一定である、アルカニルの異なる種類が発生するため、Aの異なる種類の異なる化学結合の数は原子の原子の、すなわち異なる数は、原子及び少なくとも一つの化学結合、及び化学的に結合し4個の原子までを有するとの間に1個の原子が、我々が作成するので、観察によって見つけることができ、原子アレイの6つの要素は、原子当たりの原子の数は保存し、接続の数は1,2,3,4原子で計算があります。接続の数は、2,2-ジメチルブタンと比較して、4:1の原子の数である場合、4つの接続の数は、接続が存在しないことがある場合には、2,3-ジメチルブタン3 2への原子の数は、ある場合に接続の数2~4の全ての隣接原子数を結ぶ原子の総数は、接続の数は3~1の原子の数である場合原子(接続3の原子数)であり、それは、異なる状況に必要であり、n-ヘキサンました図5に示すように、3-メチルペンタンと比較し、そうでなければ、2-メチルため。

コード:

#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;
}
公開された25元の記事 ウォンの賞賛8 ビュー547

おすすめ

転載: blog.csdn.net/weixin_44034698/article/details/104633874