admin管理员组

文章数量:1794759

【C语言】三位数(1

每天一题:

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


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


代码语言:javascript代码运行次数:0运行复制
#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个数值可以一一列出,其次再来解决不重复的问题

代码语言:javascript代码运行次数:0运行复制
#include <stdio.h>

int main()
{
    int arr[4]={1,2,3,4}; 
      
    return 0;
}

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

代码语言:javascript代码运行次数: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;
}

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

代码语言:javascript代码运行次数: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;
}

这样就出来了,是不是非常简单

代码语言:javascript代码运行次数: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
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。 原始发表:2024-09-22,如有侵权请联系 cloudcommunity@tencent 删除sizeofstdio数组includeint

本文标签: C语言三位数(1