阿符长命十万岁


私信TA

用户名:uq_31660518827

访问量:1308

签 名:

等  级
排  名 1793
经  验 2546
参赛次数 0
文章发表 13
年  龄 0
在职情况 学生
学  校
专  业

  自我简介:

解题思路:

将方案视为一个二进制数,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 人评分

看不懂代码?想转换其他语言的代码? 或者想问其他问题? 试试问问AI编程助手,随时响应你的问题:

编程语言转换

万能编程问答  

代码解释器

代码纠错

SQL生成与解释

  评论区