uva253 Cube painting

这道题目我完全没弄懂是什么意思,憋了两小时,又放下停了一天,又憋了半天还是没看出个所以然,只好把别人的代码放VC上调试,才弄明白题目是说的什么意思,真是郁闷。

在这里我还要感慨一下,为什么我们做题非得做英文的呢,这样做起来,不是训练的编程能力,而是英语水平了吧,哎!!!贴一下别人的代码,我自己写的和这个几乎无异,这个代码都被我背下来了

View Code
#include <stdio.h>
#include <string.h>
char cube[20]={'\0'},a[10]={'\0'},b[10]={'\0'},s[10]={'\0'};
int rat[30][10]={{1,2,3,4,5,6},{1,3,5,2,4,6},{1,4,2,5,3,6},{1,5,4,3,2,6},
                 {2,1,4,3,6,5},{2,3,1,6,4,5},{2,4,6,1,3,5},{2,6,3,4,1,5},
                 {3,1,2,5,6,4},{3,2,6,1,5,4},{3,5,1,6,2,4},{3,6,5,2,1,4}};
bool Rotate(char *a,char *b)
{
     char t;
     int p[10]={0}, i, j;
     for(i=0;i<12;i++)
     {
        for(j=0;j<6;j++)
           s[j]=a[rat[i][j]-1];
        if(!strcmp(s,b)) return true;
        for(j=5;j>=0;j--)
           s[5-j]=a[rat[i][j]-1];
        t=s[2]; s[2]=s[3]; s[3]=t;
        if(!strcmp(s,b)) return true;
     }
     return false;
}
int main()
{
    int  i;

    while(scanf("%s",cube)==1)
    {

        for(i=0;i<6;i++) a[i]=cube[i];
       for(i=0;i<6;i++) b[i]=cube[i+6];
       if(Rotate(a,b)) printf("TRUE\n");
       else            printf("FALSE\n");
    }
    return 0;
}
原文地址:https://www.cnblogs.com/SDUTYST/p/2599993.html