主题:每日一题
强强
[专家分:4740] 发布于 2007-11-24 17:05:00
论坛里有新人,希望每天一道题能帮你提高自己的水平。
题目比较简单,请高手包涵
1、题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?
HINT:可填在百位、十位、个位的数字都是1、2、3、4。组成所有的排列后再去掉不满足条件的排列。
回复列表 (共6个回复)
沙发
antonine [专家分:30] 发布于 2007-11-24 20:36:00
沙发
code
**************************************************
#include<iostream>
using namespace std;
int main()
{
int i,j,k,res;
int num=0;
for(i=1; i<5; i++)
{
for(j=1; j<5; j++)
{
if(j==i)
continue;
else
{
for(k=1; k<5; k++)
{
if(k==i||k==j)
continue;
else
{
num++;
cout<<(res=i*100+j*10+k)<<" ";
}
}
}
}
}
cout<<endl<<"符合要求的个数"<<num<<endl;
return 0;
}
板凳
强强 [专家分:4740] 发布于 2007-11-25 12:39:00
鼓励一下,不过你这代码是C++的,发错地方了
3 楼
tujunqiang [专家分:150] 发布于 2007-11-26 01:14:00
cls
for a=1 to 4
for b=1 to 4
for c=1 to 4
if a=b or a=c or b=c then 100
s=s+1:? a*100+b*10+c
100 next c,b,a
? "total";s
end
4 楼
强强 [专家分:4740] 发布于 2007-11-26 11:18:00
写得不错,只是有几个小地方觉得不太好.
1、输出结果时最好用PRINT而不是“?”
2、最好不要用NEXT C,B,A,一个个地NEXT,有利于阅读
3、争取不用GOTO这种跳转方法
5 楼
神的思想 [专家分:80] 发布于 2008-02-04 23:23:00
CLS
FOR I=1 TO 4
FOR J=1 TO 4
FOR K=1 TO 4
IF I<>J AND I<>K AND J<>K THEN
PRINT USING"#";I;
PRINT USING"#";J;
PRINT USING"#";K;
PRINT SPC(5);:S=S+1
END IF
NEXT K
NEXT J
NEXT I
PRINT "S=";S
END
6 楼
冷石_jasv [专家分:1570] 发布于 2008-02-08 09:00:00
3楼的做法一定是当年学gwbasic时候遗留下来的。
我来回复