解题思路:
将方案视为一个二进制数,A~F为二进制数的第一位到第六位,0表示不去,1表示去,将二进制数000000遍历到111111即可得到所有方案,当方案满足要求时输出
参考代码:
#include <iostream> #include <vector> #include <cmath> using namespace std; /*判断是否满足要求*/ bool judge(int n) { vector<int> num(6); for (int i = 0; i < 6; i++) { num[i] = n % 2; n /= 2; } return (num[0] + num[1] > 0) && (num[0] + num[3] < 2) && (num[0] + num[4] + num[5] == 2) && (num[1] + num[2] == 0 || num[1] + num[2] == 2) && (num[2] + num[3] == 1) && (!(num[3] == 0 && num[4] == 1)); } int main() { for (int i = 0x00; i < 0x4f; i++) { if (judge(i)) { //输出结果 int tmp = i; for (int j = 0; j < 6; j++) { if (tmp % 2 == 1) { cout << char('A' + j) << ','; } tmp /= 2; } } } return 0; }
0.0分
1 人评分
C语言训练-委派任务* (C语言代码)..................竟然是第一个浏览:2212 |
C语言程序设计教程(第三版)课后习题6.1 (C语言代码)浏览:650 |
C语言程序设计教程(第三版)课后习题7.2 (Java代码)浏览:694 |
C语言训练-求矩阵的两对角线上的元素之和 (C语言代码)浏览:619 |
C语言程序设计教程(第三版)课后习题5.7 (C语言代码)浏览:632 |
字符逆序 (C语言代码)浏览:645 |
C语言程序设计教程(第三版)课后习题10.1 (C语言代码)浏览:571 |
IP判断 (C语言代码)浏览:592 |
简单的a+b (C语言代码)浏览:542 |
生日日数 (C语言代码)浏览:1575 |