兄弟啊,你这题解法好多,我编个程序解都至少有了70种,每种都符合要求......
比如:(红白蓝粉)
1141 1141 1141 1141 1141 1141
2521 2521 2521 2331 2331 2331
2121 2211 1122 1212 2211 2312
1213 1213 1211 1211 1213 1212
4114 4114 5115 5215 4214 4114
代码如下:
//#include "pch.h"#include <iostream>#include <stdlib.h>#include <stdio.h>using namespace std;bool check(int flowers[5][4]) { int i = 0, a = 0; for (; i < 5; ++i) for (; a < 4; ++a) if (flowers[i][a] != 9)return 1; return 0;}void jinwei(int a[4], int i) { if (i == 0 && a[i] > 9)return; if (a[i] > 9) { ++a[i - 1]; a[i] = 1; } if (a[i - 1] > 9)jinwei(a, i - 1);}void put(int flowers[5][4]) { int i = 0, a = 0; static int num = 1; cout << num << ":" << endl; cout << "红 白 蓝 粉" << endl; for (i=0; i < 5; ++i) { for (a=0; a < 4; ++a) cout << flowers[i][a] << " "; cout << endl; } ++num; cout << endl;}int main(void){ int shu = 0; int flowers[5][4] = { 1,1,1,1,//红白蓝粉 1,1,1,1,// 0 1 2 3 1,1,1,1, 1,1,1,1, 1,1,1,1, }; while (check(flowers)) { for (; flowers[0][0] < 10; ++flowers[0][3]) { if (flowers[0][3] > 9)jinwei(flowers[0], 3); if(flowers[0][2]>flowers[0][0]+ flowers[0][1] + flowers[0][3]){ for (; flowers[1][0] < 10; ++flowers[1][3]) { if (flowers[1][3] > 9)jinwei(flowers[1], 3); if (flowers[1][3] < flowers[1][0] && flowers[1][3] < flowers[1][1] && flowers[1][3] < flowers[1][2]) { for (; flowers[2][0] < 10; ++flowers[2][3]) { if (flowers[2][3] > 9)jinwei(flowers[2], 3); if ((flowers[2][1] + flowers[2][2] )== (flowers[2][0] + flowers[2][3])) { for (; flowers[3][0] < 10; ++flowers[3][3]) { if (flowers[3][3] > 9)jinwei(flowers[3], 3); if (flowers[3][1] == (flowers[3][0] * 2)) { for (; flowers[4][0] < 10; ++flowers[4][3]) { if (flowers[4][3] > 9)jinwei(flowers[4], 3); if (flowers[4][3] == flowers[4][0]) { shu = 0; for (int m = 0; m < 4; ++m) { for (int n = 0; n < 5; ++n) shu += flowers[n][m]; if (shu != 10)break; else shu = 0; if (m == 3) { for (int c = 0; c < 5; ++c) { if (flowers[c][0] == flowers[c][1] && flowers[c][1] == flowers[c][2] && flowers[c][2] == flowers[c][3] ) { shu = 1; break; } } if (shu != 1) put(flowers); } } } } flowers[4][0] = flowers[4][1] = flowers[4][2] = flowers[4][3] = 1; } } flowers[3][0] = flowers[3][1] = flowers[3][2] = flowers[3][3] = 1; } } flowers[2][0] = flowers[2][1] = flowers[2][2] = flowers[2][3] = 1; } }//下一层循环 flowers[1][0] = flowers[1][1] = flowers[1][2] = flowers[1][3] = 1; } } } return 0;} |