C语言 如何输出由0和1这两个数字组成的所有四位数组合。thx

 我来答
DoramiHe
2018-04-08 · 知道合伙人互联网行家
DoramiHe
知道合伙人互联网行家
采纳数:25332 获赞数:59543
2011年中山职业技术学院毕业,现担任毅衣公司京东小二

向TA提问 私信TA
展开全部
#include <stdio.h>
#include <conio.h>#define N 4 //总数。。
#define M 3 //选择的个数。。 int IsPrime(int a)
{
int i;
for (i = 2; i <= sqrt(a); i++)
{
if (a % i == 0)
{
return (0);
}
}
return (1);
}void Perm(int *data, int n, int curr)
{
int num;
int i;
if (curr == n - 1)
{
num = 0;
for (i = 0; i < M; i++)
{
printf("%d", data[i]);
num = num * 10 + data[i];
}
printf(" = ");
while (IsPrime(num) == 0)
{
for (i = 2; i <= num; i++)
{
if (IsPrime(i) && (num % i == 0))
{
printf("%d×", i);
num /= i;
break;
}
}
}
printf("%d\n", num);
}
else
{
for (i = curr; i < n; i++)
{
int t;
t = data[curr];
data[curr] = data[i];
data[i] = t;
Perm(data, n, curr+1);
t = data[curr];
data[curr] = data[i];
data[i] = t;
}
}
}int main(void)
{
int i, j;
int a[N];
int temp;
printf("请输入1-9中四个不同数字: ");
for (i = 0; i < N; i++)
{
scanf("%d", &a[i]);
}
for (i = 0 ;i < N - 1; i++)
{
for (j = i; j < N - 1 - i; j++)
{
if (a[j] > a[j+1])
{
temp = a[j];
a[j] = a[j+1];
a[j+1] = temp;
}
}
}
Perm(a, N, 0);
getch();
return (0);
}
程序运行结果如下:
追问
由0和1组成的四位数数组,例如0000/0001/0010等等
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式