0.0寒假搞笑作->最强逻辑题的最直观代码实现

来源:互联网 发布:微盘今日数据 编辑:程序博客网 时间:2024/06/07 12:24

        前几天在人人上看到了一个名为最强逻辑题的东西,听说是微软的面试题目。然后看到我交一学长的代码,感觉好~漂亮= =于是就写了一份,好久没写过这么爽的代码了- -逻辑清楚的不行- -233333

        题目是这个样子的:


        题目不是很难,可以第一想法差不多应该是深搜~?No,显然应该10重循环嘛0.0效率是什么,能吃嘛~?

代码就是这样滴~

#include <iostream>#include <cmath>using namespace std;int numberOfAnswer(int* ans, int testNumber){int count = 0;for (int i = 1; i < 11; i++){if (ans[i] == testNumber)count++;}return count;}int sameNumberAsAnswerA(int* ans){int number[6] = { 0, 0, 0, 0, 0, 0 };int test = numberOfAnswer(ans, 1);for (int answer = 2; answer <= 5; answer++){for (int i = 1; i < 11; i++){if (ans[i] == answer)number[answer]++;}}for (int i = 2; i < 6; i++){if (test == number[i])return i;}return 6;}bool SameAnswerAsNo3(int *ans){if (ans[3] == ans[1] && ans[3] == 1)return true;else if (ans[3] == ans[2] && ans[3] == 2)return true;else if (ans[3] == ans[4] && ans[3] == 3)return true;else if (ans[3] == ans[7] && ans[3] == 4)return true;else if (ans[3] == ans[6] && ans[3] == 5)return true;else return false;}int fxxkTheNinth(int number){if (number == 3 || number == 7)return 1;else if (number == 10)return 5;else if (number == 4 || number == 9)return 3;else if (number == 6)return 2;else if (number == 8)return 4;else return 6;}bool overlap(int *ans){int count = 0;for (int i = 2; i < 11; i++)if (ans[i - 1] == ans[i])count++;if (count == 1)return true;else return false;}void printArray(int *ans){for (int i = 1; i < 11; i++){if (ans[i] == 1)cout << "A ";else if (ans[i] == 2)cout << "B ";else if (ans[i] == 3)cout << "C ";else if (ans[i] == 4)cout << "D ";else if (ans[i] == 5)cout << "E ";elsecout << "GG";}cout << "\nend\n";}int main(){int ans[11];for (ans[1] = 1; ans[1] <= 5; ans[1]++)for (ans[2] = 1; ans[2] <= 5; ans[2]++)for (ans[3] = 1; ans[3] <= 5; ans[3]++)for (ans[4] = 1; ans[4] <= 5; ans[4]++)for (ans[5] = 1; ans[5] <= 5; ans[5]++)for (ans[6] = 1; ans[6] <= 5; ans[6]++)for (ans[7] = 1; ans[7] <= 5; ans[7]++)for (ans[8] = 1; ans[8] <= 5; ans[8]++)for (ans[9] = 1; ans[9] <= 5; ans[9]++)for (ans[10] = 1; ans[10] <= 5; ans[10]++){if (ans[ans[1] + 1] == 2)//Q1if ((ans[ans[2] + 1] == ans[ans[2] + 2]) && overlap(ans))//Q2if (SameAnswerAsNo3(ans))//Q3if (ans[4] - 1 == numberOfAnswer(ans, 1))//Q4if (ans[5] == ans[11 - ans[5]])//Q5if (sameNumberAsAnswerA(ans) == ans[6] + 1)//Q6if (abs(ans[7] - ans[8]) == 5 - ans[7])//Q7if (ans[8] + 1 == numberOfAnswer(ans, 1) + numberOfAnswer(ans, 5))//Q8if (ans[9] == fxxkTheNinth(numberOfAnswer(ans, 2) + numberOfAnswer(ans, 3) + numberOfAnswer(ans, 4)))if (ans[10] == ans[10])printArray(ans);}system("pause");}

0.0第一次写这么深的循环,这么漂亮的if嵌套,写完还真有点小激动那o(^▽^)o

= =这排版毁了原本的美感- -就截个图吧


不能更美丽!233333333


0 0
原创粉丝点击