对象存储调度问题

如何做好产品经理面试工作

  返回  

数据结构(C语言版)-1.2-习题-3-输出布尔变量的真值组合

2021/8/21 18:47:53 浏览:

原题描述

假设有 n n n 个布尔变量 x 1 x_1 x1 ,…, x n x_n xn,输出其所有可能的真值组合,例如,如果 n = 2 n = 2 n=2,有4种可能: < t r u e , t r u e > <true,true> <true,true> < t r u e , f a l s e > <true,false> <true,false> < f a l s e , t r u e > <false,true> <false,true> < f a l s e , f l a s e > <false,flase> <false,flase>,编写C语言函数加以实现。

解决问题

转载学习:数据结构学习笔记(一),输出n个布尔变量所有真值组合

#include <iostream>
#include <memory> 
#include <cstring> 

bool a[10];
 
void perm(bool* array, int index, int n)
{
	if (index  == n)
	{
		std::cout << "<";
		std::cout << std::boolalpha << array[0];
		if (n > 1)
		{
			for (int i = 1; i < n; ++i)
			std::cout << "," << std::boolalpha << array[i];
		}
		std::cout << ">\n";
		return;
	}
	else
	{
			int j = index;
			perm(array, j+1, n);
			array[j] = !array[j];
			perm(array, j+1, n); 
	}
}
int main()
{
	int n;
	while (std::cin >> n)
	{
		memset(a, true, sizeof(a));
		while (n <= 0 || n > 9)
		{
			std::cout << "num should between 0 and 9!!\ninput again:";
			std::cin >> n;
		}
		perm(a, 0, n);
	}
	return 0;
}

输出结果:
请添加图片描述
在这里插入图片描述

联系我们

如果您对我们的服务有兴趣,请及时和我们联系!

服务热线:18288888888
座机:18288888888
传真:
邮箱:888888@qq.com
地址:郑州市文化路红专路93号