输入两个骰子,判断二者是否等价
可以利用函数调用,逐步排除不可能的情况,剩下的就是可能的情况了
在排除不可能的情况时只需判断每个面是否有相同的面 ,面与面相同,对面与对面相同
代码如下:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int judge(char str1[7],char str2[7])
{
int i,j;
int num1b=0,num1g=0,num1r=0,num2b=0,num2g=0,num2r=0;
for(i=0;i<3;i++)
{
int flag=0;
for(j=0;j<3;j++)
{
if((str1[i]==str2[j]&&str1[5-i]==str2[5-j])||(str1[i]==str2[5-j]&&str2[j]==str1[5-i]))
{
flag++;
}
}
if(flag==0)
return 0;
}
for(i=0;i<3;i++)
{
int flag=0;
for(j=0;j<3;j++)
{
if((str2[i]==str1[j]&&str2[5-i]==str1[5-j])||(str2[i]==str1[5-j]&&str1[j]==str2[5-i]))
{
flag++;
}
}
if(flag==0)
return 0;
}
return 1;
}
int main()
{
char s[13];
char str1[7],str2[7];
while(scanf("%s",s)!=EOF)
{
int flag=0;
int i,j;
for(i=0;i<6;i++)
str1[i]=s[i];
str1[i]='\0';
for(j=0;j<6;j++,i++)
str2[j]=s[i];
str2[j]='\0';
flag=judge(str1,str2);
if(flag)
printf("TRUE\n");
else
printf("FALSE\n");
}
return 0;
}