精华内容
下载资源
问答
  • 在0-9十个数字中任意选择4个数字,如选2,9,8,4这四个数字,组成最大的数是9842,最小的数是2489,然后相减,再把得到的4位数组成的最大与最小值相减,在这样重复的过程中,你能找到一个神秘的四位数吗? # coding=...

    寻找神秘4位数:在0-9十个数字中任意选择4个数字,如选2,9,8,4这四个数字,组成最大的数是9842,最小的数是2489,然后相减,再把得到的4位数组成的最大与最小值相减,在这样重复的过程中,你能找到一个神秘的四位数吗?
    在这里插入图片描述

    # coding=UTF-8
    import random
    
    '''
    总体思路:
    全集:[0,1,2,3,4,5,6,7,8,9] 
    提取子集:[2,4,9,8](依次为例)
    
    第1轮:
    排序:[2,4,8,9]
    最值:9842、2489
    最值拆分:[9,8,4,2]
    差值:9842-2489=7353
    差值拆分:[7,3,5,3]
    判断“最值拆分”与“差值拆分”是否相同:False,进入下一轮
    最值拆分=差值拆分(赋值,开启下一轮)
    
    第2轮:
    排序:[7,3,5,3]
    最值:7533、3357
    最值拆分:[7,5,3,3]
    差值:7533-3357=4176
    差值拆分:[4,1,7,6]
    判断“最值拆分”与“差值拆分”是否相同:False,进入下一轮
    最值拆分=差值拆分(赋值,开启下一轮)
    
    第3轮:
    排序:[4,1,7,6]
    最值:7641、1467
    最值拆分:[7,6,4,1]
    差值:7641-1467=6174
    差值拆分:[4,1,7,6]
    判断“最值拆分”与“差值拆分”是否相同:True,结束
    '''
    
    '''
    定义一个函数,用来拆分4位数的个十百千位,并加入列表
    如chaiFen(1234),返回[1,2,3,4]
    '''
    def chaiFen(num):
    	geWei=num//1%10
    	shiWei=num//10%10
    	baiWei=num//100%10
    	qianWei=num//1000
    	chaiFen_list=[geWei,shiWei,baiWei,qianWei]
    	return chaiFen_list
    
    #全集:建立一个包含0-9数字的列表全集,然后从里面取数字
    num_list=[0,1,2,3,4,5,6,7,8,9] 
    #子集:从全集中任取4个数字,组成一个子集,例如[2,9,8,4]
    subNum_list=random.sample(num_list,4) 
    #排序:对列表中的值进行排序,默认是升序,该方法没有返回值,但是会对列表的对象进行排序,[2,4,8,9]。
    subNum_list.sort()
    
    i=1
    while True:#将差值拆分成列表,排序。
    	#最值:定义最大的数和最小的数,然后做减法,maxNum=9842,minNum=2489,
    	maxNum=subNum_list[3]*1000+subNum_list[2]*100+subNum_list[1]*10+subNum_list[0]*1
    	minNum=subNum_list[0]*1000+subNum_list[1]*100+subNum_list[2]*10+subNum_list[3]*1
    	#差值
    	subtraction=maxNum-minNum #subtraction=7353
    	#差值拆分
    	breakSubNum_list=chaiFen(subtraction) #[7,3,5,3]
    	breakSubNum_list.sort() #[3,3,5,7]
    	#最值拆分
    	maxNum_list=chaiFen(maxNum)
    	maxNum_list.sort() #[2,4,8,9]
    	#判断:当差值拆分与最值拆分相等时,可以认为收敛,结束。
    	if maxNum_list==breakSubNum_list:
    		break
    	else:
    		print("第{}次:{}-{}={}".format(i,maxNum,minNum,subtraction))
    		subNum_list=breakSubNum_list
    		i+=1
    
    print("共运行{}次,该组数字是{}".format(i,breakSubNum_list))
    
    
    
    

    运行结果:
    在这里插入图片描述

    展开全文
  • *打印由数字4 5 7 9 所组成所有四位数 并统计总数 */ #include <stdio.h> int main(void) { //数组将不连续数据进行连续存储 得以用循环算法 int ar[4]={4,5,7,9}; int a,b,c,d,num,count=0;//a:...

    列举两种方法

    1)

    /*
     *打印由数字4 5 7 9 所组成所有四位数 并统计总数
    */
    #include <stdio.h>
    
    int main(void)
    {
        //数组将不连续数据进行连续存储  得以用循环算法
        int ar[4]={4,5,7,9};
        int a,b,c,d,num,count=0;//a:千位 b:百 c:十 d:个
    
    
        for(a=0;a<4;a++)
        {
          for(b=0;b<4;b++)
          {
             for(c=0;c<4;c++)
             {
                for(d=0;d<4;d++)
                {
                   if(ar[a]!=ar[b]&&ar[a]!=ar[c]&&ar[a]!=ar[d]    \
                           &&ar[b]!=ar[c]&&ar[b]!=ar[d]&&ar[c]!=ar[d])
                   {
                      num=ar[a]*1000+ar[b]*100+ar[c]*10+ar[d];
                      count++;
                      printf("%d ",num);
                   }
                }
             }
          }
        }
        printf("\n总计:%d\n",count);
        return 0;
    }
    
    #include "stdio.h"
    
    main(void)
    {
        int i=0,num=0,th,a=0,b=0,c=0,d=0;
        for(i=1000;i<10000;i++) 
        {
             
            a=i/1000;
            b=i/100%10;
            c=i/10%10;
            d=i%10;
            if((a==4|a==5|a==7|a==9)&(b==4|b==5|b==7|b==9)&(c==4|c==5|c==7|c==9)&(d==4|d==5|d==7|d==9))
            {
                 if((a!=b)&&a!=c&&a!=d&&b!=c&&b!=d&&c!=d)
                 {
                     printf("%d ",i);
                     num++;
                 }
            }
        }
        printf(\n总计:%d\n",num);
        return 0;
    }

     

    展开全文
  • 题目:若有1、2、3、4四个数字,请编写程序输出所有互不相同且无重复数字的三位数 和 总个数. **/ int main(void) { int i = 0; int j = 0; int k = 0; int count = 0; for(i = 1; i < 5; i++) //百位 { ...

    记录
    /**
    题目:若有1、2、3、4四个数字,请编写程序输出所有互不相同且无重复数字的三位数 和 总个数.
    **/

    int main(void)
    {
    
        int i = 0;
        int j = 0;
        int k = 0;
        int count = 0;
    
        for(i = 1; i < 5; i++) //百位
        {
            for(j = 1; j < 5; j++) //十位
            {
                for(k = 1; k < 5; k++) //个位
                {
                    //限制条件:无重复的三位数
                    if(i != j && i != k && j != k)
                    {
                        printf("%d%d%d\n", i, j, k);
                        count++;
                    }
                }
            }
        }
        printf("用1,2,3,4组成无重复三位数的个数是:%d\n", 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
    4321,2,3,4组成无重复三位数的个数是:24
    Press any key to continue
    
    展开全文
  • 采用多重循环的方式即可,首先明确一共有四个数字供选择,组成的是四位数,那么在个、、百、千的取值上,就只能有一位是1,一位是2,一位是3,一位是4 代码如下: #include<stdio.h> int main(){ //四位...

    采用多重循环的方式即可,首先明确一共有四个数字供选择,组成的是四位数,那么在个、十、百、千的取值上,就只能有一位是1,一位是2,一位是3,一位是4

    代码如下:

    #include<stdio.h>
    int main(){
        //四位数字1,2,3,4可以组成多少位互不相同且无重复数字的四位数
        for(int i=1;i<5;i++){
            //第一个for循环i为千位数字的取值,范围是1~4
            for(int j=1;j<5;j++){
                //第二个for循环j为百位数字的取值,范围是1~4
                for(int k=1;k<5;k++){
                    //第三个for循环k为十位数字的取值,范围是1~4
                    for(int n=1;n<5;n++){
                        //第四个for循环n为个位数字的取值,范围是1~4
                        if(i!=j && i!=k && i!=n && j!=k && j!=n && k!=n){
                            //由于组成的四位数是无重复数字的,所以千百十个上面的数字不可以相等
                            printf("%d%d%d%d\n",i,j,k,n);
                        }
                    }
                }
            }
        }

      
    }

    内容仅供学习参考,初学写博客,欢迎大家指教。

    }

    展开全文
  • 有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少? 对题目的分析: 其实这和数学当中的排列组合一样,三位数,我们在编写代码时需要把它分为个位、位、百位来进行组合,并且组成时这些...
  • #include<stdio.h> int main() { int i=3,x; int a[3]; scanf("%d",&... }//得到含有1257四个元素数组 for (i=0;i<4;i++){ a[i]=(a[i]+9)%10; } //swap int p,q; p=a[0];
  • 这几天上网,看到百度里面有人问这一道题目,0~9十个数,组成如下加法式 *** + *** = ****,每个数字都只能使用一次,问一共多少中组合? 今天,就用C#语言来写一下,解出这道题,其他语言算法相同,只是语法不同,...
  • 请将0123456789十个数字以特定的顺序排列,组成一个10位数ABCDEFGHIJ(每个数字只能使用一次),使得: 1.第一位数字组成的整数可以被1整除 2.第一、二位数字组成的整数可以被2整除 3.第一、二、三位数字组成的...
  • 题目:用 0,1,2,3,4,5 组成没有重复数字的四位数,其中千位数字大于百位数字且百位数字大于位数字的四位数的个数是多少? 思路:从六个数字中选取三个作为千百位,因为有大小限制,所以他们之间的顺序一旦选定后...
  • i=0 a=1 b=1 c=1 for a in [1,2,3,4]: #百位数数字,不考虑是否有重复数字出现 for b in [1,2,3,4]: if b==a : ... #位数数字,需要考虑是否和百位数数字相同,若相同应加1 for c in [1,2,3,4]: ...
  • 0~9共十个数字组成两个五位数,求最小差的组成。 思路: 从第一位,即万位思考,肯定是越接近越好,但是这里不要填1和2,因为第一位越接近越好,最近是差1,那么第一位是1,2还是2,3还是3,4都可以,因此先看...
  • 四个数字:1、2、3、4,能组成多少个互不相同且无重复数字的三位数?各是多少? 解题思路: 无重复的三位数,所以用3个循环嵌套,每个循环负责一个数字,三个数字互相不重复即可。 count = 0 for i in range(1,5):...
  • 听说做练习是掌握一门编程语言的...【Python练习题 001】有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少? 这题还算比较简单,思路是:先确定百位数、然后是位数、个位数。1-4 个...
  • 因为是三位数所以用三层循环分别控制百位、位、位 ...最后一层循环找出每位数下的每个十位数下所有不同的个位数((123、124)(132、134)(142、143))…… //arr 要判断的数组 int[] arr = ...
  • # 题目:求0—7所能组成的奇数个数。 # 题目分析: ...# 若是奇数,个位只能是1,3,5,7四个数字,即1位数时,有4个奇数。 n = 4 n_sum = 4 for i in range(2, 9): if i <= 2: n *= 7 else: ...
  • 思路分析将需要判断的位数字分解为千,百,,各位,然后列出所有的这四个数字的组合,为4×3×2×1=24,然后没一个组合去判断前两位组成十位数与后两位组成十位数相乘结果是否等于原数字。代码实现public class ...
  • # 题目 有四个数字:1、2、3、4,能组成多少个互不相同且无重复数字的三位数?各是多少? list_num = [1,2,3,4] num = [] # 第一层循环 确定百位数 for a in list_num: # 第二层循环 确定位数 for b in list_num...
  • 程序源代码: number = [] #数字池 for a in range(1, 5):... for c in range(1, 5): #个位数 if a != b and b != c and c != a: #数字之间各不相同 number.append(a*100 + b*10 + c) #将三位数放入数字池 print(a*1
  • 程序分析:,百,千四个位置都可以添加9位数字,再把不符合条件的删除。 程序源代码: 以上程序运行结果: 1 2 3 4 1 2 3 5 1 2 3 6 1 2 3 7 1 2 3 8 1 2 3 9 1 2 4 3 1 2 4 5 1 2 4 6 1 2 4 7 1 2 4 8 1 2 4...
  • 三年级加乘法原理:求1-9九个数字组成的没有重复数字的所有四位数的和。首先,声明一下定义,12是个数,这个数是由1和2两个数字组成的,数字只有0~9,一共10个。然后,换一道更容易说明的题:求1-3三个数字组成的...
  • 解题思路:四个数字可能会出现在三个位数里面的任意一个位置,所以需要使用三层循环,每层循环四个数字轮流,就找到了所有三位数,然后判断百位,位,个位是否相同,如果不相同,表示没有重复,可以输出代码:...
  • 位数上不能是0,个位数上由1,3,5,7组成,则公式是 当组成三位数时: 公式为 … 以此类推,当组成i位数时 其中 由此生成代码: public static void main(String[] args) { int sum = 4;//组成一位数的...
  • 思路:首先我们能看到1,2,3,4这四个数字都能作为一个3位数的百位,我们要求能组成的三位数有多少个,就是从这4个数中任意取出三个排列组合,我们定义三个变量i(百位),j(位),k(个位),用三个for循环来求...
  • 软件大赛题目----(第十个)求大小数字之差

    千次阅读 多人点赞 2012-03-10 13:39:37
    1、任意给出一个四位数, 把它重新组成四位的最大数和一最小数, 算出两者间的差。  例如:3721这数,可以重组成:7321和1237,相数之差为7321-1237  package com.bird.test; import java.util....
  • 十四、排列2

    2017-05-12 21:25:06
    Problem Description Ray又对数字的列产生了兴趣: 现有四张卡片,用这四张卡片能排列...对每组卡片按从小到大的顺序输出所有能由这四张卡片组成的4位数,千位数字相同的在同一行,同一行中每个四位数间用空格分隔。

空空如也

空空如也

1 2 3 4 5 6
收藏数 113
精华内容 45
关键字:

十个数字组成四位数