不重复的3位数

Posted lllyclh

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了不重复的3位数相关的知识,希望对你有一定的参考价值。

1.问题描述

用1,2,3,4共4个数字能组成多少个互不相同且无重复数字的三位数?

2.问题分析

是三位数,先把这个数拆分,百位是a,十位是b,个位是c,然后在定义一个d=100*a+10*b+c,最后比较三位数有没有相同的,如果互不相同就输出

3.算法设计

多重循环嵌套的for语句可以做到,做for循环的时候,百位十位个位都是从1开始,小于5的,可以是1,2,3,4

最后去掉出现重复的排列

定义一个count,充当计数器,如果有一个成立的count就+1.

4.程序

#include<iostream>
using namespace std;
int main()

    int a, b, c;
    int count = 0;
    for (a = 1; a < 5; a++)
        for (b = 1; b < 5; b++)
            for (c = 1; c < 5; c++)
            
                if (a != b && a != c && b != c)//判断三个数是不是相同的
                
                    count++;//每有一个数,count+1
                    int d = 100 * a + 10 * b + c;
                    cout << d << "  " << endl;//输出这个三位数
                
            
    cout << count << endl;//这个最后计算共有多少个符合题目的三位数
            return 0;

 

Pythondemo实验5练习实例多个数字组合成不重复三位数

题目:有四个数字:1、2、3、4,能组成多少个互不相同且无重复数字的三位数?各是多少?

程序分析:可填在百位、十位、个位的数字都是1、2、3、4。组成所有的排列后再去 掉不满足条件的排列。

程序源代码:

#!/usr/bin/python
# -*- coding: UTF-8 -*-


# 题目:有四个数字:1、2、3、4,能组成多少个互不相同且无重复数字的三位数?各是多少?
l = 0
m = []
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):
                continue
            print(i,j,k)
            l = l+1
            m.append(i*100+j*10+k)

print(l,"number.")
print(m)
            
            

 

输出结果:

技术图片

 

 

 

 

 

 

 

————————(我是分割线)————————

参考:

None

 

备注:

初次编辑时间:2019年9月22日18:59:56

环境:Windows 7   / Python 3.7.2

 

以上是关于不重复的3位数的主要内容,如果未能解决你的问题,请参考以下文章

不重复的三位数

Python3练习题 001:4个数字求不重复的3位数

0到7组成无重复数字的五位数,有多少个奇数

Pythondemo实验5练习实例多个数字组合成不重复三位数

Python3练习题 001:4个数字求不重复的3位数

python基础#1,2,3,4可组成多少不重复的三位数