【C语言】三位数(1-4)不重复组合

简介: 【C语言】三位数(1-4)不重复组合

每天一题:

现有1,2,3,4 四个数字,能组成多个不同且无重复数字的三位数?


看到题的时候,可能觉得很简单吧,像这样列出来:


#include <stdio.h>
 
int main()
{
     printf("%d%d%d",1,2,3);
     printf("%d%d%d",1,3,2);
     printf("%d%d%d",2,1,3);
    return 0;
}

对于我们这道题的数量小来说,可以这样慢慢列出来,但是如果是1-10呢,你又该怎么办


代码实现:

下面我给大家讲一下如何实现这个效果:

首先我们要确保,这4个数值可以一一列出,其次再来解决不重复的问题

#include <stdio.h>
 
int main()
{
    int arr[4]={1,2,3,4}; 
      
    return 0;
}

有了数组,就等于有了地基,下面就可以开始搭房子;

#include <stdio.h>
 
int main()
{
    int arr[]={1,2,3,4}; 
    int sz=sizeof(arr)/sizeof(int);
    int x,y,z;
    for(x=0;x<sz;x++)
    {
        for(y=0;y<sz;y++)
        {
            
        }
    }
    return 0;
}

到这里我们就要停下来思考了,题目说不重复,那就需要给他做限定了

#include <stdio.h>
 
int main()
{
    int arr[]={1,2,3,4}; 
    int sz=sizeof(arr)/sizeof(int);
    int x,y,z;
    for(x=0;x<sz;x++)
    {
        for(y=0;y<sz;y++)
        {
            if(arr[x]!=arr[y])
            {
                for(z=0;z<sz;z++)
                {
                    if(arr[x] != arr[y] && arr[x] != arr[z] && arr[y] != arr[z])
                    {
                        printf("%d%d%d",arr[x],arr[y],arr[z]);
                    }    
                }
            }
        }
    }
    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


相关文章
|
C语言
C语言之回文数的求解。回文数一个5位数,判断它是不是回文数。即12321是回文数,个位与万位相同,十位与千位相同。
C语言之回文数的求解。回文数一个5位数,判断它是不是回文数。即12321是回文数,个位与万位相同,十位与千位相同。
186 0
|
5月前
|
C语言
C语言学习记录——将三位数的个十百位单独打印,并求其和。
C语言学习记录——将三位数的个十百位单独打印,并求其和。
41 4
|
6月前
|
C语言
c语言编程练习题:7-28 求整数的位数及各位数字之和
c语言编程练习题:7-28 求整数的位数及各位数字之和
63 0
|
6月前
|
C语言
【C语言】如何只打印小数的有效数字位数且不补0
【C语言】如何只打印小数的有效数字位数且不补0
95 0
【C语言】如何只打印小数的有效数字位数且不补0
|
11月前
|
C语言
C语言十六弹 --求两个整数二进制位不同的位数
C语言十六弹 --求两个整数二进制位不同的位数
|
C语言
C语言每日一题 ---- 打印从1到最大的n位数(Day 1)
C语言每日一题 ---- 打印从1到最大的n位数(Day 1)
62 0
|
C语言
C语言实例:求水仙花数(阿姆斯壮数)和回文数(附带求一串数字的位数方法和每一位数字的计算方法)
C语言实例:求水仙花数(阿姆斯壮数)和回文数(附带求一串数字的位数方法和每一位数字的计算方法)
156 0
|
C语言
C语言实现高精度(大位数)阶乘
C语言实现高精度(大位数)阶乘
184 0
|
C语言
C语言实现高精度(大位数)乘法
C语言实现高精度(大位数)乘法
126 0
|
大数据 C语言
C语言实现高精度(大位数)减法
C语言实现高精度(大位数)减法
166 0