java例题_11 求不重复数

 1 /*11 【程序 11 求不重复数字】
 2 题目:有 1、2、3、4 这四个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?
 3 程序分析:可填在百位、十位、个位的数字都是 1、2、3、4。组成所有的排列后再去 掉不满足条件的排列。
 4 */
 5
 6
 7 /*分析
 8  * 根据提示,三个位子分别放入这个四个数字,可以用三重for循环,然后添加if条件排除掉有重复的组合,就可以得到所有的无重复三位数
 9  * 另外,加一个count计数器,没有一个满足的数字就加1,就能得到有多少个
10  * */
11
12 //【注】如果有0的存在,要注意百位不能为0;
13
14 package homework;
15
16 public class _11 {
17
18     public static void main(String[] args) {
19         // 声明计数器count
20         int count=0;
21         //第一层循环表示百位
22         for (int i = 1; i<=4; i++) {
23             //第二层循环表示十位
24             for (int j = 1; j <=4; j++) {
25                 //添加if条件排除十位和百位相同的三位数
26                 if(i==j) {
27                     continue;
28                 }
29                 else {
30                     //第三层循环表示个位
31                     for (int k = 1; k <=4; k++) {
32                         //添加if条件判断是否有重复数字
33                         if((i==k)||(j==k)) {
34                             continue;
35                         }
36                         else {
37                             System.out.print(i*100+j*10+k+" ");
38                             count++;
39                         }
40                     }
41                 }
42
43             }
44         System.out.print("\n");   //排版好看
45         }
46         System.out.println("满足条件的三位数有"+count+"个");
47
48     }
49
50 }

原文地址:https://www.cnblogs.com/scwyqin/p/12297279.html

时间: 2024-08-30 13:37:40

java例题_11 求不重复数的相关文章

java例题_21 求 1+2!+3!+...+20!的和

1 /*21 [程序 21 求阶乘] 2 题目:求 1+2!+3!+...+20!的和 3 程序分析:此程序只是把累加变成了累乘. 4 */ 5 6 /*分析 7 * 1.汲取上一题的教训,这么大的数字,long类型 8 * 2.for循环,两层,一层控制1~20,另一层控制阶乘 9 * */ 10 11 package homework; 12 13 public class _21 { 14 15 public static void main(String[] args) { 16 //声

java 数组中求最值

java中数组求最值,这在实际的开发中几乎用不到,但是在面试中会偶尔被问到,这是考你基本的思维能力,现在说下这个题的基本思路 思路: 1:先定义一个变量,一般是用数组的第一个值 2:在循环中判断(从第二个角标到数组的length-1角标对应的值)是否大于这个之前定义的值,如果大于那么就把这个值赋值给max,直到比完就可以求出最大值 代码如下: public static void main(String[] args) { int[] arr = {1,3,5,6,9,7}; int max =

java例题_22 用递归求阶乘 5!

1 /*22 [程序 22 递归求阶乘] 2 题目:利用递归方法求 5!. 3 程序分析:递归公式:fn!=fn*4! 4 */ 5 6 /*分析 7 * 递归:如果其中每一步都要用到前一步或前几步的结果,称为递归的 8 * 根据提示,可以用算法x!=x*(x-1)!;y=x-1,y!=y*(y-1)!;... 9 * 10 * */ 11 12 13 package homework; 14 15 public class _22 { 16 17 public static void main

java例题_23 递归求年龄

1 /*23 [程序 23 求岁数] 2 题目:有 5 个人坐在一起,问第五个人多少岁,他说比第 4 个人大 2 岁.问第 4 个人岁数,他说比第 3 个 3 人大 2 岁.问第三个人,又说比第 2 人大两岁.问第 2 个人,说比第一个人大两岁.最后问第一个人,他 4 说是 10 岁.请问第五个人多大? 5 */ 6 7 /*分析 8 *除第一个人外,每个人都比前面那个人大2岁,用递归算法 9 *x2=x1+2,x3=x2+2,x4=x3+2,x5=x4+2;x1=10 10 * */ 11 1

JAVA基础:求一个等腰三角形

import java.util.Scanner; public class text { public static void main(String[] args) {  Scanner scan = new Scanner(System.in);  System.out.println("请输入一个等腰三角形的高:");  int height = scan.nextInt();  for (int j = 1; j <= height; j++) {   for (int

Java程序,求学员的平均成绩

第一步,系统提示输入学员的人数. 第二步,逐一获取学员的分数,并累计. 第三步,求平均成绩,并输出. import java.util.Scanner; public class chengji { public static void main(String[] args) { Scanner s=new Scanner(System.in); System.out.println("请输入学员人数"); int renshu=s.nextInt(); int i=1; int su

JAVA 数组实例-求学生成绩的最大成绩,获取数组中的最大值、最小值

实例: import java.util.*; //求学生最大成绩 public class Test{ public static void main(String[] args){ System.out.println("=======求学生最大成绩========="); Scanner in = new Scanner(System.in); int[] arr = new int[5]; //获取用户输入的每个学生的成绩 for(int i=0;i<arr.length

Java练习 SDUT-1117_求绝对值(选择结构)

C语言实验--求绝对值(选择结构) Time Limit: 1000 ms Memory Limit: 65536 KiB Problem Description 从键盘上输入任意一个整数,然后输出它的绝对值! Input 从键盘上输入任意一个整数. Output 输出它的绝对值. Sample Input -4 Sample Output 4 超级水题 import java.util.*; public class Main { public static void main(String[

Java大集合求交集的方法比较

两个List集合求交集想必学过Java的都知道用系统自带的retainAll()方法,但是在数据量比较大时,这个方法效率并不高,利用空余时间研究了几种数据量较大时求两个集合交集的办法.本文主要研究了JDK自带方法求交集.Guava集合求交集.Java8的parallelStream并行流求交集.双指针方法求交集以及bitmap求交集的方法和效率. JDK自带方法 最常用的求交集方法,在小数据量的时候没什么问题,一旦两个集合的数据量达到几十万级别时,效率就严重偏低,底层实际上也是两个for循环,只