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; }