C语言中组成不重复的三位数问题

目录
  • C语言组成不重复的三位数
    • (1)通用思路
    • (2)排除思路
  • 打印1234组成的不重复三位数

C语言组成不重复的三位数

对于这个问题,我有两种解决思路

  • 第一种较为简单
  • 第二种较为复杂

(1)通用思路:根据数组中的数字自由组合成三位数

(2)找出最小数和最大数并以此为循环边界(目的在于缩小循环的范围,提高效率),之后根据不断循环,将不符合要求的数字排除,在某些题中会简便许多

·由1,2,3,4组成的不重复的三位数

(1)通用思路

#include <stdio.h>
 
int main()
{
    int a[4]={1,2,3,4};
    int i,j,k,count=0;
    for (i=0;i<4;i++)
    {
        for (j=0;j<4;j++)
        {
            for (k=0;k<4;k++)
                if (i!=j&&i!=k&&k!=j)
                printf("%d\n",a[i]*100+a[j]*10+a[k]); 
        }
    }
    return 0;
} 

(2)排除思路

#include <stdio.h>
 
int main()
{
    int a[3],i,j,k;
    for (i=123;i<=432;i++)
    {
        int word = 1;
        a[0]=i%10;a[1]=i/10%10;a[2]=i/100;
        for (j=0;j<3;j++)
        {
            if (a[j]==1||a[j]==2||a[j]==3||a[j]==4)
            {
            for (k=0;k<3&&j!=k;k++)
            {
                if (a[k]==a[j])
                {
                    word = 0;
                    break;
                }
            }
            }
           else
           {
                word = 0;
                break;
           }
        
        if (word == 0)
            break;
    }
 
        if (word)
        printf("%d\n",i);
    }
    return 0;
}

·某些题(适用于排除思路)

用1,2,3,.....,9组成三位数abc,def,ghi,每个数字恰好使用一次,要求 abc:def:ghi=1:2:3.按照“abc def ghi”的格式输出所有解,每行一个解。

#include <stdio.h>
 
int main()
{
    int abc,def,ghi;
    int i,k,a[9],word =1;
    for (abc=123;abc<=329;abc++)
    {
        def = abc * 2;
        ghi = abc * 3;
        a[0]=abc%10;a[1]=abc/10%10;a[2]=abc/100;
        a[3]=def%10;a[4]=def/10%10;a[5]=def/100;
        a[6]=ghi%10;a[7]=ghi/10%10;a[8]=ghi/100;
        for (k=0;k<9;k++)
        {
            word = 1;
            for (i=0;i<9&&i!=k;i++)
            {
                if (a[k]==a[i]||a[i]==0)
                {
                    word = 0;
                    break;
                }
            }
            if (word == 0)
            break;
        }
        if (word)
        printf("%d,%d,%d\n",abc,def,ghi);
        
    }
}

打印1234组成的不重复三位数

1、每位数都遍历一次,就是个位出现1234,十位出现1234,百位出现1234

2、去重复,个位十位百位不能相等

3、复合式遍历,统计这种遍历得到了多少回

var count = 0;
for(i=1;i<=4;i++){
    for(j=1;j<=4;j++){
        for(k=1;k<=4;k++){
            if(i!=j && j!=k && k!=i){
            count++;
            console.log(i+""+j+""+k);
            }
        }
    }
}
console.log("这样的三位数有"+count+"个");

以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。

时间: 2022-11-12

C语言程序设计50例(经典收藏)

[程序1]题目:有1.2.3.4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?1.程序分析:可填在百位.十位.个位的数字都是1.2.3.4.组成所有的排列后再去 掉不满足条件的排列. 2.程序源代码: 复制代码 代码如下: #include "stdio.h"#include "conio.h"main(){  int i,j,k;  printf("\n");  for(i=1;i<5;i++) /*以下为三重循环*/   

c语言分离三位数的实现

目录 c语言分离三位数 c语言数字分离 题目 初级代码 第二种方法,可以用数组 c语言分离三位数 #include<stdio.h> main(){ int k,l,m,n; printf("请输入一个三位数"); scanf("%d",&k); l=k/100; m=k/10%10; n=k%10; printf("这个三位数的百位是:%d\n",l); printf("这个三位数的十位是:%d\n",m

c语言10个经典小程序

[程序1] 题目:有1.2.3.4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少? 1.程序分析:可填在百位.十位.个位的数字都是1.2.3.4.组成所有的排列后再去 掉不满足条件的排列. 2.程序源代码: 复制代码 代码如下: main() { int i,j,k; printf("\n"); for(i=1;i<5;i++) /*以下为三重循环*/ for(j=1;j<5;j++) for (k=1;k<5;k++) { if (i!=k&&a

c语言实现整蛊朋友小程序(附源码)

前言 感觉学了c语言后仍然一无是处?!!想要整蛊一下朋友仍然不会?!! 别慌,看完这篇文章,你就会了. 下面给大家分享两个基础的整蛊小程序 1.我是猪关机程序 2.无限弹窗程序 一.我是猪关机程序 效果:运行程序后电脑在60s后关机,如果输入"我是猪"则取消关机:如果输入"你是猪"则立即关机:输入其他文字会提示重新输入:若强行关闭程序电脑仍会关机. 本程序基于控制台,其功能是通过dos命令来实现. 那么就先讲一下所用到的dos命令(shutdown -s -t 60

C语言绘制简单时钟小程序

本文实例为大家分享了C语言绘制时钟小程序的具体代码,供大家参考,具体内容如下 先贴效果图给大家先看看 基本机制是通过获取系统的时钟去绘制图线进行展示 贴出代码 ,大家可以直接使用的 .程序我进一步的讲解 #include <graphics.h> #include <conio.h> #include <math.h> #include <time.h>   #define high 480 #define width 640 #define pi 3.14

C语言贪吃蛇经典小游戏

一.贪吃蛇小游戏简介: 用上下左右控制蛇的方向,寻找吃的东西,每吃一口就能得到一定的积分,而且蛇的身子会越吃越长,身子越长玩的难度就越大,不能碰墙,也不能咬到自己的身体,等到了一定的分数,就能过关. 二.函数框架 三.数据结构 typedef struct Snake { size_t x; //行 size_t y; //列 struct Snake* next; }Snake, *pSnake; 定义蛇的结构体,利用单链表来表示蛇,每个结点为蛇身体的一部分. 四.代码实现(vs2010  c

C语言实现简单扫雷小程序

扫雷是一款大众类的益智小游戏.游戏目标是在最短的时间内根据点击格子出现的数字找出所有非雷格子,同时避免踩雷,踩到一个雷即全盘皆输. 首先带大家简单来了解一下扫雷的游戏机制: 随便点一个格子,会有一块,上面的数字就代表数字周围八个格子会有几个雷,是1他周围就只有1个雷,2就有两个雷,以此类推,直到找出全部没有雷的格子就算玩家赢.只要点到一个有雷的格子就判定玩家输. 了解了 机制之后就来编写程序.将程序分为test.c.game.c和game.h三个部分.其中test.c中编写主函数,game.c中

用Java编写经典小程序

如果是刚接触或者刚学习java,练习一些基础的算法还是必须的,可以提升思维和语法的使用 1.输出两个int数中的最大值 import java.util.Scanner; public class demo { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.println("请依次输入两个整数:a,b(以空格隔开)"); /*比较两个数的大小*/

易语言制作简单计时器小程序的方法

简单计时器 易语言制作简单计时器用到以下几个功能: 编辑框 按钮 时钟 变量 如果命令 例程: 说明: 本方法是新手学习易语言制作的软件,深入学习易语言后你将会有更方便的写法 运行结果: 总结 以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对我们的支持.如果你想了解更多相关内容请查看下面相关链接

用C编写一个送给女朋友的情人节小程序 可爱!

本文实例为大家分享了C编写送给女朋友的小程序,供大家参考,具体内容如下 #include<iostream> #include<conio.h> #include<windows.h> #include<time.h> #include<stdio.h> using namespace std; #define wide 49 #define gao 24 #define high 6 int yanhua[gao][wide],hang,lie

微信小程序模版渲染详解

微信小程序的界面程序支持html语法,多加了一部分标签,如view.block.templete等. 模版渲染 index.wxml <view> <p>{{helloWord}}</p> </view> 其中{{}}里面包含的内容你可以理解为一个变量,怎么让程序解析出{{helloWord}}变量 在index.js 中注册这个变量 var json = { data:{ "helloWord" : "hello world&

Java中基于Shiro,JWT实现微信小程序登录完整例子及实现过程

小程序官方流程图如下,官方地址 : https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/login.html : 本文是对接微信小程序自定义登录的一个完整例子实现 ,技术栈为 : SpringBoot+Shiro+JWT+JPA+Redis. 如果对该例子比较感兴趣或者觉得言语表达比较啰嗦,可查看完整的项目地址 : https://github.com/EalenXie/shiro-jwt-applet