uva253 骰子涂色

来源:互联网 发布:抗美援朝电影知乎 编辑:程序博客网 时间:2024/06/10 05:08

输入两个骰子,判断二者是否等价
可以利用函数调用,逐步排除不可能的情况,剩下的就是可能的情况了
在排除不可能的情况时只需判断每个面是否有相同的面 ,面与面相同,对面与对面相同
代码如下:

#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;}
0 0
原创粉丝点击