古代先民认为,天下万物皆由五类元素组成,分别是金、木、水、火、土,彼此之间存在相生相克的关系。
相生关系为:木生火,火生土,土生金,金生水,水生木。
相克关系为:金克木,木克土,土克水,水克火,火克金。
本题就请你编写程序,判断任意一对给定的元素之间的关系。
输入格式:
输入在一行中给出一个正整数 N(≤10),随后 N 行,每行给出
2 个正整数 A 和 B,为两种元素的编号。这里假设金、木、水、火、土的编号顺次为 1、2、3、4、5。
输出格式:
对输入的每一对 A 和 B,如果 A 生 B,则输出 A sheng B;如果 A 克 B,则输出 A ke B。反之亦然。
输入样例:
2
4 2
5 3
输出样例:
2 sheng 4
5 ke 3
一、C语言代码
1、枚举法
#include <stdio.h>
int main( )
{
int A , B; int n = 0; int i = 0;
scanf("%d\n",&n);
for(i=0 ; i<n ;i++)
{
scanf("%d",&A);
scanf("%d",&B);
if((A==1&&B==2)||(A==2&&B==1))
{
printf("1ke2\n");
}
else if((A==2&&B==5)||(A==5&&B==2))
{
printf("2ke5\n");
}
else if((A==3&&B==4)||(A==4&&B==3))
{
printf("3ke4\n");
}
else if((A==4&&B==1)||(A==1&&B==4))
{
printf("4ke1\n");
}
else if((A==5&&B==3)||(A==3&&B==5))
{
printf("5ke3\n");
}
else if((A==1&&B==3)||(A==3&&B==1))
{
printf("1sheng3\n");
}
else if((A==2&&B==4)||(A==4&&B==2))
{
printf("2sheng4\n");
}
else if((A==3&&B==2)||(A==2&&B==3))
{
printf("3sheng2\n");
}
else if((A==4&&B==5)||(A==5&&B==4))
{
printf("4sheng5\n");
}
else if((A==5&&B==1)||(A==1&&B==5))
{
printf("5sheng1\n");
}
}
return 0;
}
2、思路法
#include <stdio.h>
int main(int argc, char const *argv[])
{
int ch[6] ={0,1,2,3,4,5}; //金木水火土
int sheng[6] ={0,3,4,2,5,1};//金木水火土sheng水火木土金
int ke[6] ={0,2,5,4,1,3};//金木水火土ke木土火金水
int n =0; int i = 0; int a = 0; int b = 0;
scanf("%d\n",&n);
for( i = 0 ; i < n ; i++)
{
scanf("%d %d",&a,&b);
if(sheng[a] == b)
{
printf("%dsheng%d\n",a,b);
}
if(sheng[b] == a)
{
printf("%dsheng%d\n",b,a);
}
if(ke[a] == b)
{
printf("%dke%d\n",a,b);
}
if(ke[b] == a)
{
printf("%dke%d\n",b,a);
}
}
return 0;
}
二、输出结果
1、枚举法输出结果

2、思路法输出结果
