发新话题
打印

【程序1】

【程序1】
题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?
1.程序分析:可填在百位、十位、个位的数字都是1、2、3、4。组成所有的排列后再去
      掉不满足条件的排列。  

怎么做啊。

TOP

*因为最小的是123,最大的是432,其余符合要求的都在这两个数中间
?
gs=0
for i=123 to 432
y=0
for j=1 to 4
if str(j,1)$str(i,3)  &&数字中有1或2或3或4,y就增加1
     y=y+1
endif
endfor

if y=3  &&只要1234这4个数出现的个数够3就符合题意,出现个数不够3次的说明这4个数有重复或有这4个数以外的数,因为不符合题意所以去掉不印
?? str(i,3)+" "
gs=gs+1
endif
endfor
? "个数:"
?? gs

TOP

总共24种
#include<stdio.h>
int main()
{
int i0,i1,i2;
int count=0;
for(i0=1;i0<5;i0++)
for(i1=1;i1<5;i1++)
for(i2=1;i2<5;i2++)
{
if(i0==i1||i0==i2||i1==i2)
  continue;
else
  printf("
%d:%d%d%d",++count,i0,i1,i2);
}
printf("
");
return 1;

}

TOP

1

TOP

b

TOP

#include<stdio.h>
int main()
{
int i0,i1,i2;
int count=0;
for(i0=1;i0<5;i0++)
for(i1=1;i1<5;i1++)
for(i2=1;i2<5;i2++)
{
if(i0==i1||i0==i2||i1==i2)
continue;
else
printf("
%d:%d%d%d",++count,i0,i1,i2);
}
printf("
");
return 1;

}
回答者:sascsy - 魔法师 五级 12-27 18:38
1
回答者:lyj52021 - 见习魔法师 二级 12-27 20:23
b
回答者:yuyangqin - 试用期 一级 12-27 20:46
*因为最小的是123,最大的是432,其余符合要求的都在这两个数中间
?
gs=0
for i=123 to 432
y=0
for j=1 to 4
if str(j,1)$str(i,3) &&数字中有1或2或3或4,y就增加1
y=y+1
endif
endfor

if y=3 &&只要1234这4个数出现的个数够3就符合题意,出现个数不够3次的说明这4个数有重复或有这4个数以外的数,因为不符合题意所以去掉不印
?? str(i,3)+" "
gs=gs+1
endif
endfor
? "个数:"
?? gs

TOP

发新话题