精华内容
下载资源
问答
  • 一个乘法算式,用1-9,9个数字组成一个四位数乘一位数得一个四位数的算式,其中每个数字只能用一次且不重复
  • 编写程序,输出由1、2、3、4、5、6这四个数字组成的每位数都不相同的所有四位数以及总个数。 实现代码 x=set() for i in range(1,7): for j in range(1,7): for k in range(1,7): for l in range(1,7): if i!=j ...

    问题描述

    编写程序,输出由1、2、3、4、5、6这四个数字组成的每位数都不相同的所有四位数以及总个数。

    实现代码

    x=set()
    for i in range(1,7):
        for j in range(1,7):
            for k in range(1,7):
                for l in range(1,7):
                    if i!=j and i!=k and i!=l and j!=k and j!=l and k!=l:
                        x.add(i*1000+j*100+k*10+l)
    print(x)
    print('总个数为:',len(x))
    

    运行结果

    在这里插入图片描述

    完整结果如下:
    {6145, 6152, 6153, 6154, 4123, 4125, 4126, 4132, 4135, 4136, 4152, 4153, 4156, 4162, 4163, 4165, 6213, 6214, 6215, 2134, 2135, 2136, 6231, 6234, 6235, 2143, 2145, 2146, 6241, 6243, 6245, 2153, 2154, 6251, 2156, 6253, 6254, 2163, 2164, 2165, 4213, 4215, 4216, 4231, 4235, 4236, 4251, 4253, 4256, 4261, 4263, 6312, 4265, 6314, 6315, 6321, 6324, 6325, 6341, 6342, 6345, 6351, 6352, 6354, 4312, 4315, 4316, 4321, 4325, 4326, 4351, 4352, 4356, 4361, 2314, 2315, 2316, 4362, 4365, 6412, 6413, 6415, 6421, 6423, 6425, 6431, 6432, 6435, 2341, 2345, 2346, 2351, 2354, 6451, 2356, 6452, 6453, 2361, 2364, 2365, 2413, 2415, 2416, 6512, 6513, 6514, 6521, 6523, 6524, 2431, 2435, 2436, 6531, 6532, 6534, 6541, 6542, 6543, 2451, 2453, 2456, 2461, 2463, 4512, 2465, 4513, 4516, 4521, 4523, 4526, 4531, 4532, 4536, 2513, 2514, 4561, 2516, 4562, 4563, 2531, 2534, 2536, 2541, 2543, 2546, 2561, 2563, 2564, 4612, 4613, 4615, 4621, 4623, 4625, 4631, 4632, 4635, 4651, 4652, 4653, 2613, 2614, 2615, 2631, 2634, 2635, 2641, 2643, 2645, 2651, 2653, 2654, 5123, 5124, 5126, 5132, 5134, 5136, 5142, 5143, 5146, 5162, 5163, 5164, 3124, 3125, 3126, 3142, 3145, 3146, 3152, 3154, 3156, 3162, 3164, 3165, 5214, 5213, 5216, 5231, 5234, 5236, 5241, 5243, 5246, 5261, 3214, 3215, 3216, 5263, 5264, 3241, 3245, 3246, 3251, 3254, 3256, 3261, 3264, 3265, 5312, 5314, 5316, 5321, 5324, 5326, 1234, 1235, 1236, 1243, 1245, 1246, 5341, 5342, 5346, 1253, 1254, 1256, 1263, 1264, 1265, 5361, 5362, 5364, 5412, 5413, 5416, 1324, 1325, 1326, 5421, 5423, 5426, 5431, 5432, 5436, 1342, 1345, 1346, 1352, 1354, 1356, 1362, 1364, 1365, 3412, 3415, 3416, 5461, 5462, 5463, 3421, 3425, 3426, 3451, 3452, 3456, 3461, 3462, 3465, 1423, 1425, 1426, 1432, 1435, 1436, 1452, 1453, 1456, 1462, 1463, 3512, 1465, 3514, 3516, 3521, 3524, 3526, 3541, 3542, 3546, 3561, 3562, 3564, 5612, 5613, 5614, 1523, 1524, 5621, 1526, 5623, 5624, 1532, 1534, 5631, 1536, 5632, 5634, 1542, 1543, 5641, 1546, 5643, 5642, 1562, 1563, 1564, 3612, 3614, 3615, 3621, 3624, 3625, 3641, 3642, 3645, 3651, 3652, 3654, 1623, 1624, 1625, 1632, 1634, 1635, 1642, 1643, 1645, 1652, 1653, 1654, 6123, 6124, 6125, 6132, 6134, 6135, 6142, 6143}
    总个数为: 360

    展开全文
  • JAVA-N可重复数字组成N位数的问题

    题目要求

    给定N个0-9的数字(可重复)输出所有可能的N位数即它们的总数,N位数输出时按照由小到大的顺序输出。N位数总数在最后一行输出。

    样例输入

    第一行输入个数N,第二行有N个数字,分别代表N个可用的数字(0-9),可以重复,用空格隔开。

    4
    0 1 2 2
    

    样例输出

    每一个N位数占用一行,从小到大输出,最后一行输出总个数

    1022
    1202
    1220
    2012
    2021
    2102
    2120
    2201
    2210
    9
    

    思路

    深搜加回溯

    代码

    JAVA

    import java.util.Scanner;
    public class 组数问题 {
    	static int N;						//给定数字的个数
    	static int total = 0;				//可能的N位数的总数
    	static int[] num;					//存储可能的N位数的每一位
    	static int[] flag = new int[10];	//存储0-9每个数字各有多少个
    	
    	static void dfs(int pos) {			//深搜
    		if(pos==N) {
    			total++;
    			String result="";
    			for(int i = 0; i<N; i++)	result+=num[i];
    			System.out.println(result);
    			return;
    		}
    		int i = pos==0? 1:0;			//因为第一位不能是0,所以需要在此判断一下for循环的开始,若是第一位则从1开始否则从0开始
    		for(; i<10; i++)
    			if(flag[i]>0) {
    				flag[i]--;
    				num[pos]=i;
    				dfs(pos+1);
    				flag[i]++;				//回溯
    			}
    	}
        
        public static void main(String[] args) {
        	Scanner scaner = new Scanner(System.in);
        	N = scaner.nextInt();
        	num = new int[N];
        	for (int i = 0; i < N; i++)	flag[scaner.nextInt()]++;
        	scaner.close();
        	dfs(0);
        	System.out.println(total);
        }
    }
    

    C

    #include<stdio.h>
    int N,total=0,num[100];flag[10];
    void dfs(int pos){
        if(pos==N){
            total++;
            for(int i=0; i<N; i++)
                if(i!=N-1)  printf("%d",num[i]);
                else        printf("%d\n",num[i]);
            return;
        }
        int i=pos==0? 1:0;
        for(;i<10;i++)
            if(flag[i]>0){
                flag[i]--;
                num[pos]=i;
                dfs(pos+1);
                flag[i]++;
            }
    }
    int main(void){
        int temp;
        scanf("%d",&N);
        for(int i=0; i<N; i++){
            scanf("%d",&temp);
            flag[temp]++;
        }
        dfs(0);
        printf("%d\n",total);
    }
    
    展开全文
  • *打印由数字4 5 7 9 所组成所有四位数 并统计总数 */ #include &lt;stdio.h&gt; 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;
    }

     

    展开全文
  • 1234随机组成3位数

    2012-04-18 13:54:37
    1234随机组成3位数 1234随机组成3位数 1234随机组成3位数 1234随机组成3位数
  • 一:代码实现 1 #include <iostream> 2 using namespace std; 3 int main() 4 { ..."请输入一个四位整数:"<<endl; 6 int i; 7 cin>>i; 8 if (i/1000==0||i/10...

    一:代码实现

     1 #include <iostream>
     2 using namespace std;
     3 int main()
     4 {
     5     cout<<"请输入一个四位整数:"<<endl;
     6     int i;
     7     cin>>i;
     8     if (i/1000==0||i/1000>9)
     9     {
    10         cout<<"Error!"<<endl;
    11     }
    12     else
    13     {
    14         cout<<"千位为:"<<i/1000<<endl;
    15         cout<<"百位为:"<<(i/100)%10<<endl;
    16         cout<<"十位为:"<<(i%100)/10<<endl;
    17         cout<<"个位为:"<<i%10<<endl;
    18     }
    19     return 0;
    20 }

    二、运行演示

    转载于:https://www.cnblogs.com/f59130/p/3307505.html

    展开全文
  • 问题描述 把一个四位数四个数字由小至大排列,组成一个新数,又由大至小排列排 列组成一个新数,大数减去小数,之后重复这个步骤,只要四位数个数 字不完全一样,数字最终便会变成6174。 编程要求 1.设计一个程序,...
  • //递归求组成个数字的各位数之和 import java.util.*; public class Test{ public static int fun(int n){ int ret = 0; if(n<10){ return n; } return n % 10 + fun(n / 10); } public ...
  • A.(next_permutation() 求四个数字组成的所有四位数) 排列2 Ray又对数字的列产生了兴趣: 现有张卡片,用这张卡片能排列出很多不同的4位数,要求按从小到大的顺序输出这些4位数。 Input 每组数据占一...
  • #有五个数字:1、2、3、4、5,能组成多少个互不相同且无重复数字的四位数?各是多少? e =[] for a in range(1,6): for b in range(1,6): for c in range(1,6): for d in range(1,6): if a!=b and a...
  • 任意四位数可以组成多少三位数,程序如下: 假设数字分别为4,8,12,32,以数组的形式进行任意组成位数的操作,实际操作的就是根据数组的第几位进行操作。 ...
  • 由4个数字组成3位数的回文数字 ''' for i in range(1,5): for j in range(1,5): for k in range(1,5): if i == k or i != j: if i==k or i == j: print(i,j,k) ...
  • 题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的四位数?都是多少? 分析题目,要求将1,2,3,4四个数字成各个位数不相同且无重复的四位数,可以写个for循环,每一个循环代表一个位数上的数字,即1...
  • 无重复数字四位数

    2018-03-30 09:28:00
    2 Python练习题问题如下: 简述:这里有四个数字, 3 分别是:1、2、3、4 4 提问:能组成多少个互不相同且无重复数字的四位数? 5 各是多少? 6 7 ''' 8 for i in range(1,5): 9 for j in range(1,5...
  • 题目:若有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,能组成多少个互不相同且无重复数字的四位数?各是多少? n=0 for a in range(1,5): for b in range(1,5) : if a!=b:#增加if条件语句,让循环要产生的数字减少,更省运行时间 for c in ...
  • 我和我女朋友的QQ号都是九位数字,这九个数字是有七个不同的数字组成的,我想问这种概率是多大,我们是不是特别我看缘分呢?求大神给算一下概率! 思路 定义问题:由7种数字组成的9位数一共有多少个?记做x,则答案...
  • 有1 2 3 4 这四个数字,设计程序计算能组成多少个互不相同且无重复数字的3位数 这里我总结了种方法来实现,还在继续研究中,后面会持续更新,基础打好,才能学好编程,持续努力的小白 # 方法一,利用if判断限定...
  • 如标题所示,题目很简单,要求用1-9这9个数写出一个等式,这个等式是四位数乘以一位数等于四位数,每个数字只能用一次,即不重复出现。 现在给出枚举算法的解答。 #include #include int main(){ char num[]=...
  • 5.编写一个函数,计算任意两个数字之间所能组成的奇数个数,数字必须是个位数。比如: 计算0-3之间能组成的奇数个是01、21、03、13、23、31 function work5(a,b){ // var _str=prompt("请输入两个数字",""); var ...
  • * 有一个四位数8461,分别求出这个四位数 * 的千位、百位、位和位的数字,并输出 * * * * @param args */ public static void main(String[] args) { int num=8461; int gewei=num%10;...
  • 有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少? 对题目的分析: 其实这和数学当中的排列组合一样,三位数,我们在编写代码时需要把它分为个位、位、百位来进行组合,并且组成时这些...
  • package com.offcn.字节流练习; public class Test2 { public static void main(String[] args) { int hig = 0; int low = 0; for (int i = 1000;...int q = i % 10;...int w = i / 10
  • 寻找神秘4位数:在0-9十个数字中任意选择4个数字,如选2,9,8,4这四个数字组成最大的数是9842,最小的数是2489,然后相减,再把得到的4位数组成的最大与最小值相减,在这样重复的过程中,你能找到一个神秘的四位数...
  • Python需要自己手动转换格式真的很烦人。。。 count=0 for num in range(1000,10000): A=num a=num/1000 num%=1000 b=num/100 ... c=num/10 d=num%10 num_list=sorted([a,b,c,d]) if int(nu...
  • 由0到4五个数字组成5位数,每个数字用一次,但位和百位不能为3(当然万位不能为0),输出所有可能的五位数。 思路: 直接穷举法,暴力输出(想不到其他的……) 从0~4 条件控制,如果数值重复,则continue,不...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 105,172
精华内容 42,068
关键字:

十个数字组成四位数