新手·ing 发表于 2017-3-24 21:42:12

Python:每日一题 1

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

新手·ing 发表于 2017-3-24 21:43:40

for i in range(1,5):
    for j in range(1,5):
      for k in range(1,5):
            if i != k and i != j and j != k:
                print(i,j,k)

这是我的解答,欢迎大家一起交流。

伤心地铁 发表于 2017-3-24 22:08:36

for x in range(1,5):
    for y in range(1,5):
      for z in range(1,5):
          if x != y andx != z and y != z:
                print(x,y,z)
跟2楼的好巧

新手·ing 发表于 2017-3-24 22:12:04

伤心地铁 发表于 2017-3-24 22:08
for x in range(1,5):
    for y in range(1,5):
      for z in range(1,5):


哈哈
谢谢支持
欢迎加入我的淘专辑
http://bbs.fishc.com/forum.php?mod=collection&action=view&ctid=588&fromop=my

ooxx7788 发表于 2017-3-24 22:17:54

本帖最后由 ooxx7788 于 2017-3-24 22:21 编辑

import itertools
a = range(1, 5)
y = list(itertools.permutations(a, 3))
print(y)
投机取巧

新手·ing 发表于 2017-3-24 22:19:42

ooxx7788 发表于 2017-3-24 22:17
投机取巧

向大佬致敬
谢谢支持
欢迎加入我的淘专辑
http://bbs.fishc.com/forum.php?mod=collection&action=view&ctid=588&fromop=my
有没有兴趣成为维护人,一起?

yuclta 发表于 2017-3-28 21:32:03

5楼简洁。

新手·ing 发表于 2017-3-28 21:32:46

yuclta 发表于 2017-3-28 21:32
5楼简洁。

是啊
万能的itertools模块

gopythoner 发表于 2017-3-31 23:35:53

跟你们写的一样,从第一个开始做你这个系列,有意思
虽然代码一样,但是权当记录一下吧
def test1():
    for a in range(1,5):
      for b in range(1, 5):
            for c in range(1, 5):
                if a != b and a != c and b != c:
                  print (a, b, c)

达达里昂 发表于 2017-4-2 13:53:11

list = []
for x in range(1,5):
    for y in range(1,5):
      for z in range(1,5):
            if x != y and x != z and y != z:
                a= 100 *x + 10 * y + z
                list.append(a)
print('答案列表是:',list)
print('列表中的元素总共有:',len(list),'个')

qina1020 发表于 2017-4-6 08:46:33

lists1=
lists2=
print(lists2,'个数'+str(len(lists1)))
变态版

ButcherRabbit 发表于 2017-4-7 14:09:37

count = 0
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 k == i:
                continue
            else:
                print('%d%d%d'%(i,j,k))
                count += 1
print('有%d种组合'%count)

小老甲鱼 发表于 2017-4-10 00:41:05

共24组,分别如下:
1 2 3,1 2 4,1 3 2,1 3 4,1 4 2,1 4 3;
2 1 3,2 1 4,2 3 1,2 3 4,2 4 1,2 4 3;
3 1 2,3 1 4,3 2 1,3 2 4,3 4 1,3 4 2;
4 1 2,4 1 3,4 2 1,4 2 3,4 3 1,4 3 2;

momozi 发表于 2017-4-11 12:55:57

新手·ing 发表于 2017-3-24 21:43
这是我的解答,欢迎大家一起交流。

{:5_95:}

余欲渔 发表于 2017-4-11 12:58:11

import itertools as it
print(len(,3)]))

momozi 发表于 2017-4-11 12:58:43

for i in range(1,5):
    for j in range(1,5):
      for k in range(1,5):
            if i != k and i != j and j != k:
                print(i,j,k)
这个好,简单易懂,大爱,因为我看懂了。。。

546397641 发表于 2017-4-11 13:24:28

e=0
for a in range(1,5):
    for b in range(1,5):
      for c in range(1,5):
            if a!=b and a!=c and c!=b:
               
                d=a*100+b*10+c
                e+=1
                print(d," ",e)

546397641 发表于 2017-4-11 13:26:42

momozi 发表于 2017-4-11 12:58
for i in range(1,5):
    for j in range(1,5):
      for k in range(1,5):


会有空格出现吧

zhhmms 发表于 2017-4-12 14:15:46

貌似:
def test1():
    for a in range(1,5):
      for b in range(1, 5):
            for c in range(1, 5):
                if a != b and a != c and b != c:
                  print (a, b, c)

清风揽月shine 发表于 2017-4-15 15:10:15

n=0
for x in range(1,5):
    for y in range(1,5):
      for z in range(1,5):
            if (x!=y)and(x!=z)and(y!=z):
                print(x,y,z)
                n+=1
print('In total %d types'%n)
               
页: [1] 2 3 4 5 6 7 8 9 10
查看完整版本: Python:每日一题 1