不二如是 发表于 2017-5-5 22:51:23

算法1 ◉‿◉ {1,2,3,4}能组成多少个互不相同且无重复的三位数字?

本帖最后由 不二如是 于 2017-5-9 07:26 编辑



按照提示,完成代码,秀秀你的编程能力!

不许看答案,否则打屁屁



程序分析:
可填在百位、十位、个位的数字都是 1 、 2 、 3 、 4 。

组成所有的排列后再去掉不满足条件的排列。



源代码:
**** Hidden Message *****
效果图:




○面试题索引贴●
如果喜欢,请订阅{:10_303:} :
HTML5 - 庖丁解牛 + JavaScript - 庖丁解牛

alltolove 发表于 2017-5-5 23:00:20

我看看{:10_256:}

小人 发表于 2017-5-6 11:56:33

最笨的办法就 一个个 迭代出来,然后去重复   看看 老哥您有什么好算法{:10_269:}

shishunfu 发表于 2017-5-15 10:02:05

本帖最后由 shishunfu 于 2017-5-15 10:11 编辑

等我先去熟悉下js语法规则再来{:10_277:}


先交一段java代码
public static void main(String[] args) {
                int count = 0;
                for (int a = 1; a <= 4; a++) {
                        for (int b = 1; b <= 4; b++) {
                                for (int c = 1; c <= 4; c++) {
                                        if (a != b && a != c && b != c) {
                                                System.out.print(a + "" + b + "" + c+"\t");
                                                count++;
                                                if (count >= 5 && count % 5 == 0) {
                                                        System.out.println();
                                                }
                                        }
                                }
                        }
                }
                System.out.println("符合规则的数据共有:"+count);
        }

auyhin丶 发表于 2017-7-29 21:47:05

#include "stdafx.h"
#include <iostream>

using namespace std;

const int MAX = 4;

int main()
{
       int count = 0;
       for (int i = 1; i <= MAX; i++)
       {
                  for (int j = 1; j <= MAX; j++)
                  {
                           if (i == j)
                                        continue;
                           for (int k = 1; k <= MAX; k++)
                           {
                                        if (i == k || j == k)
                                               continue;               
                                        cout << i << j << k << " ";
                                        count++;
                                        if (count % 5 == 0)
                                               cout << endl;
                           }
                  }
       }
       cout << endl;
   return 0;
}


嗯...最近学了点点c++..那就用上一点吧..

Gim 发表于 2017-8-7 13:59:41

真的很不错哦

YHao 发表于 2017-8-7 14:31:55

用python的方法写了个答案{:10_279:}
temp = []
for i in range(1,5):
    for j in range(1,5):
      for k in range(1,5):
            if i == j or j == k or i == k:
                pass
            else:
                temp.append(str(i)+str(j)+str(k))
            
print(temp)
print('共'+ str(len(temp)) +'种排列')

http://xxx.fishc.com/album/201708/07/142922kbc3lp8ecpi7838d.png

昊旭 发表于 2017-8-7 23:45:52

我看看

鱼油小白 发表于 2017-8-12 19:26:00

c++递归强答
#include <cstdio>
using namespace std;

int s = 0;
int a = {0,0,0};

bool in(int n)
{
        for (int i = 0; i < 3; ++i)
        {
                if(a == n)
                        return true;
        }
        return false;
}

void work(int step)
{
        if(step >= 3)
        {
                if(s>0 && s % 5 == 0)
                        printf("\n");
                printf("%d%d%d ", a,a,a);
                s++;
                return;
        }
        for (int i = 1; i <= 4; ++i)
        {
                if(!in(i))
                {
                        a = i;
                        work(step+1);
                        a = 0;
                }
        }
}

int main()
{
        work(0);
        printf("\n");

        return 0;
}

sunbocheng 发表于 2017-8-13 14:09:52

看看

ga678 发表于 2017-8-17 18:22:32

看看

心中的日月 发表于 2017-8-18 18:58:54

JavaScript

本帖最后由 心中的日月 于 2017-8-18 19:37 编辑

for(i=1,count=0,str='';i<=4;i++){
        for(j=1;j<=4;j++){
                if(i==j){continue;}
                for(k=1;k<=4;k++){
                        if(i==k||j==k){continue;}
                        count++;
                        str+=100*i+10*j+k+'\t';
                        if(count%5==0){str+='\n';}
                }
        }
}
console.log(str);

i@lemon 发表于 2017-9-11 08:39:50

24个

哨子1122 发表于 2017-9-18 21:03:57

学习

wulizunzun 发表于 2017-9-19 11:13:44

1

jinpengwu68 发表于 2017-10-2 05:20:59

have a look

qvbmnm520 发表于 2017-10-18 10:25:01

来看一下真的有JS 了吗

nahll 发表于 2017-10-26 10:57:21

我看看

keeperkaka 发表于 2017-11-15 09:06:43

学习一下,非常感谢

oolee 发表于 2017-12-5 21:48:43

24个.
页: [1] 2 3 4 5 6 7 8 9
查看完整版本: 算法1 ◉‿◉ {1,2,3,4}能组成多少个互不相同且无重复的三位数字?