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

 

posted @ 2023-05-13 23:52  酥饼馅红豆沙  阅读(15)  评论(0编辑  收藏  举报