数字组合问题

题目:0~9能组成多少个互不相同且重复数字的两位数

前言

读研后有在上学校开设的python课,更新一些课上作业

题目详情

有0~9共计十个数字,能够组成多少个互不相同且重复数字的两位数

源码


```python
# 题目:
# 有0,1,2,3,4,5,6,7,8,9,10个数字,能组成多少个互不相同且重复数字的两位数

List = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
# for循环将每个字符转换为int值
for n in range(len(List)):
    List[n] = int(List[n])
# List = [int(List[i]) for i in range(len(List))]

print('\n', List, '这', len(List), '个数字组成的互不相同且重复数字的两位数如下:')
Count = 0
for i in range(1,len(List)):
    for j in range(len(List)):
        print('%d%d' % (List[i], List[j]), end='   ')
        Count = Count + 1
        # 分行打印,每10个组合数分一行
        if Count % 10 == 0:
            print('\n')
print('\n共组成互不相同且重复数字的两位数有:', Count, '个')

运行结果

[0, 1, 2, 3, 4, 5, 6, 7, 8, 9] 这 10 个数字组成的互不相同且无重复数字的两位数如下:
00 01 02 03 04 05 06 07 08 09

10 11 12 13 14 15 16 17 18 19

20 21 22 23 24 25 26 27 28 29

30 31 32 33 34 35 36 37 38 39

40 41 42 43 44 45 46 47 48 49

50 51 52 53 54 55 56 57 58 59

60 61 62 63 64 65 66 67 68 69

70 71 72 73 74 75 76 77 78 79

80 81 82 83 84 85 86 87 88 89

90 91 92 93 94 95 96 97 98 99

共组成互不相同且无重复数字的两位数有: 100 个

拓展

0 ~ 9组成的两位数实际上就是10~ 99这九十个数吗。问题太过简单。
更复杂点可以将题目改写为求0 ~9 能够组成多少个互不相同且不重复数字的两位数,也就是11、99这种不能算在内
那么代码该怎么改写呢,其实只需将i、j循环之间做一个值判定即可。当i==j就continue即可

# 有0,1,2,3,4,5,6,7,8,9,10个数字,能组成多少个互不相同且“无重复”数字的两位数,如11这种数字不能算在内

List = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

print('\n', List, '这', len(List), '个数字组成的互不相同且无重复数字的两位数如下:')
Count = 0
for i in range(1,len(List)):
    for j in range(len(List)):
        if i == j:
            continue
        print('%d%d' % (List[i], List[j]), end='   ')
        Count = Count + 1
        # 分行打印,每10个组合数分一行
        if Count % 10 == 0:
            print('\n')
print('\n共组成互不相同且无重复数字的两位数有:', Count, '个')

运行结果:

 [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] 这 10 个数字组成的互不相同且无重复数字的两位数如下:
10   12   13   14   15   16   17   18   19   20   

21   23   24   25   26   27   28   29   30   31   

32   34   35   36   37   38   39   40   41   42   

43   45   46   47   48   49   50   51   52   53   

54   56   57   58   59   60   61   62   63   64   

65   67   68   69   70   71   72   73   74   75   

76   78   79   80   81   82   83   84   85   86   

87   89   90   91   92   93   94   95   96   97   

98   
共组成互不相同且无重复数字的两位数有: 81 个
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值