不重复的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; }