不重复的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位数的主要内容,如果未能解决你的问题,请参考以下文章