UVA 253-Cube painting
2016-07-19 19:41
501 查看
UVA 253-Cube painting
题目大意:用题目顺序来读正方体各个面的字母,判断俩个正方体是否是同一个正方体解题思路:正方体共六个面,可以把每2个对面进行组合,形成3个组合,让r对应1,b对应3,g对应5,组合面字母所对应的数字相加得到一个数字,如r与b组合得到1+3=4,俩个正方体都将3个数字排序,然后逐个比较,如果都相同说明是同一个正方体
#include <stdio.h> #include <string.h> #include <iostream> using namespace std; int turn(char a) { switch(a) { case 'r': return 1; case 'b': return 3; case 'g': return 5; } return 0; } int cmd(const void* a, const void* b) { return (*(int*)a - *(int*)b); } int main() { char c[20]; int a[3]; int b[3]; while(gets(c) && c[0] != EOF) { for(int i = 0; i < 3; i++) { int j = 5 - i; a[i] = turn(c[i]) + turn(c[j]); } int m = 0; for(int i = 6; i < 9; i++) { int j = 11 - i + 6; b[m] = turn(c[i]) + turn(c[j]); m++; } qsort(a, 3, sizeof(int), cmd); qsort(b, 3, sizeof(int), cmd); int res = 1; for(int i = 0; i < 3; i++) { if(a[i] != b[i]) { res = 0; break; } } if(res == 1) printf("TRUE\n"); else printf("FALSE\n"); } return 0; }
相关文章推荐
- 如何组织构建多文件 C 语言程序(二)
- 如何写好 C main 函数
- Lua和C语言的交互详解
- 关于C语言中参数的传值问题
- 简要对比C语言中三个用于退出进程的函数
- 深入C++中API的问题详解
- 基于C语言string函数的详解
- C语言中fchdir()函数和rewinddir()函数的使用详解
- C语言内存对齐实例详解
- C语言编程中统计输入的行数以及单词个数的方法
- C 语言简单加减乘除运算
- C语言自动生成enum值和名字映射代码
- C语言练习题:自由落体的小球简单实例
- 使用C语言判断英文字符大小写的方法
- c语言实现的带通配符匹配算法
- C语言实现顺序表基本操作汇总
- C语言中进制知识汇总
- C语言判断一个数是否是2的幂次方或4的幂次方
- C语言二进制思想以及数据的存储
- C语言中计算正弦的相关函数总结