c语言:现有四张卡片,用这四张卡片能排列出很多不同的4位数,要求按从小到大的顺序输出这些4位数。

如题所述

第1个回答  2012-06-11
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int N;
bool *mark;
int *output, pos = 0;

void AddNumber(int i)
{
bool finish = true;
mark[i] = true;
output[pos++] = i;

int j;
for (j = 0; j < N; j++)
{
if (!mark[j])
{
finish = false;
AddNumber(j);
}
}

if (finish)
{
for (j = 0; j < pos; j++)
printf("%d", output[j] + 1);
printf("\n");
}

pos--;
mark[i] = false;
}

int main()
{
printf("please input you want results\n");
scanf("%d", &N);
mark = (bool *)malloc(sizeof(bool) * N);
output = (int *)malloc(sizeof(int) * N);

memset(mark, (bool)0, sizeof(bool) * N);

int i;
for (i = 0; i < N; i++)
AddNumber(i);

free(mark);
free(output);
system("pause");
return 0;
}本回答被提问者采纳

用1、2、3、4这四张卡片可以组长不同的四位数,如果把它们从小到大依次排...
第20个数字是4132。

...2,3,4,用这四张卡片能排列出多少个不同的四位数
百位可选:4-1=3个因为千位选过一个了 十位可选:3-1=2个 个位可选:2-1=1个 利用乘法原理:4*3*2*1=24个 答:用这四张卡片能排列出24个不同的四位数。

有四张卡片,分别写着1,2,3,0,用这四张卡片可以组成( )个不同的4位数
3×3×2×1=18(个)

...可当“6”用,则由这四张卡片可组成不同的四位数
由题意知本题是一个分步计数问题,先在后三位中选两个位置填两个数字“0”,有C 3 2 种填法,再决定用“9”还是“6”有两种可能,最后排另两个卡片有A 2 2 种排法,∴共可排成C 3 2 ?2?A 2 2 =12个四位数.故选B

如图,有四张不透明的卡片除正面的算式不同外,其余完全相同,将它们背 ...
B

若四张卡片上分别写上字母g、o、o、d,将这四张卡片随机地排成一行...
C

用1049的四张数字卡片图书一个人可以组几个不同的四位数它们的算式是什...
1,数字0不能放在千位。2,数字9不可以倒置看做6。C(3,1)×A(3,3)=3×(3×2×1)=18,能组成18个不同四位数。

用1,2,3,4这四张卡片可以组成不同的四位数,从小到大排列起来,第一个是...
你好:第十五个是3214 共有:4*3*2*1=24个 每个数字做千位的各有6个数。第十五个也就是3做千位这组中的第三个。这组分别是:3124,3142,3214……

...3、4四张卡片组成不同的四位数,从小到大依次排列,第一个是1234,第...
第二十个是4132 1234 1243 1324 1342 1423 1432 2134 2143 2314 2341 2413 2431 3124 3142 3214 3241 3412 3421 4123 4132 4213 4231 4312 4321

...正面分别写有字母A、B、C、D和一个算式。将这四张卡片背面...
(1) (2)正确的是A,共有16种可能.,∴P(两张都正确)= ;P(一个算式正确)=

相似回答