回 帖 发 新 帖 刷新版面

主题:每日一题

论坛里有新人,希望每天一道题能帮你提高自己的水平。
题目比较简单,请高手包涵
1、题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?
HINT:可填在百位、十位、个位的数字都是1、2、3、4。组成所有的排列后再去掉不满足条件的排列。

回复列表 (共6个回复)

沙发

沙发
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;
}

板凳

鼓励一下,不过你这代码是C++的,发错地方了

3 楼

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 楼

写得不错,只是有几个小地方觉得不太好.
1、输出结果时最好用PRINT而不是“?”
2、最好不要用NEXT C,B,A,一个个地NEXT,有利于阅读
3、争取不用GOTO这种跳转方法

5 楼

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 楼

3楼的做法一定是当年学gwbasic时候遗留下来的。

我来回复

您尚未登录,请登录后再回复。点此登录或注册