资讯中心 Info
当前位置:酷叮猫 > 资讯中心 >
C语言求不重复的3位数
发布日期:2018-11-02 阅读次数:

问题描述

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

 

问题分析

求互不相同的三位数,可以一位一位的去确定,先确定百位、再确定十位、个位,再将各位上的数值进行比较,若互不相同则输出。

 

算法设计

1) 利用多重循环嵌套的for语句实现。

2) 用三重循环分别控制百位、十位、个位上的数字,它们都可以是1、2、3、4。

3) 在已组成的排列数中,还要再去掉出现重复的1、2、3、4这些数字的不满足条件的排列。

 

题目要求最后输出满足条件的数据个数,需要一个变量count充当计数器的作用,有一个满足条件的数据出现计数器的值加1。为了使每行能输出8个数字,每输出一个数字就对count的值进行判断看是否能被8整除,若能整除则输出换行符。

if (count%8==0)

printf(" ");

 

下面是完整的代码:

#include <stdio.h>

 

int main()

{

    int i, j, k, count=0;

    for(i=1; i<5; i++)

        for(j=1; j<5; j++)

            for(k=1; k<5; k++)

            {

                if(i!=k && i!=j && j!=k)  /*判断三个数是否互不相同*/

                {

                    count++;

                    printf("%d%d%d  ", i, j, k);

                    if(count%8 == 0)  /*每输出8个数换行*/

                        printf(" ");

                }

            }

    printf(" The total number is %d. ", count);

   

    return 0;

}

 

运行结果:

123  124  132  134  142  143  213  214

231  234  241  243  312  314  321  324

341  342  412  413  421  423  431  432

 

The total number is 24.

课程体系
通知公告