7.28(数学:组合)

  • 题目
    • 题目描述
    • 破题
  • 代码
    • 运行示例

题目

题目描述

*7.28(数学:组合)编写一个程序,提示用户输入10个整数,然后显示从这10个数中选出两个数的所有组合

破题

  1. 声明一个长度为10的int型数组
  2. 接收用户输入
  3. 对数组进行排序
  4. 再对数组进行遍历,计算有多少个元素不相等(使用count计数变量)
  5. 声明一个长度为count的int型数组
  6. 对原数组进行遍历,将元素不重复的赋值给新数组
  7. 两个数的所有组合第一部分即从新数组中选2个的全部结果
  8. 再对原数组进行遍历,如果某个元素出现次数超过1次(即2次及2次以上),则输出所有组合的第二部分:两个数都一样的结果

代码

import java.util.Arrays;
import java.util.Scanner;public class Test7_28 {public static void main(String[] args) {//1. 声明一个长度为10的int型数组int length0 = 10;int[] list0 = new int[length0];//2. 接收用户输入Scanner input = new Scanner(System.in);System.out.print("请输入10个整数:");for (int i = 0 ; i < length0 ; i++){list0[i] = input.nextInt();}//3. 对数组进行排序Arrays.sort(list0);//4. 再对数组进行遍历,计算有多少个元素不相等(使用count计数变量)int count = length0;for (int i = 0 ; i < length0 - 1 ;i++){if (list0[i] == list0[i+1])count--;}//5. 声明一个长度为count的int型数组int[] list1 = new int[count];//6. 对原数组进行遍历,元素不重复的赋值给新数组int index_list1 = 0;for (int i = 0 ; i < length0 ; i++){// i=0时将第一个元素赋值给新数组,index_list1++// i≠0且新数组[index_list1]==原数组[i]时则index_list1++// i≠0且新数组[index_list1]!=原数组[i]时则新数组[index_list1++]=原数组[i]if (i == 0){list1[index_list1] = list0[i];}else if(list1[index_list1] != list0[i]){++index_list1;list1[index_list1] = list0[i];}}//7. 两个数的所有组合第一部分: 从新数组中选2个的全部结果for (int a = 0 ; a <= index_list1  ; a++){for (int b = 0 ; b <= index_list1 ; b++){if (list1[a] != list1[b]){System.out.println("a=" + list1[a] + ", b=" + list1[b]);}}}//8. 再对原数组进行遍历,如果某个元素出现次数超过1次(即2次及2次以上),则输出所有组合的第二部分:两个数都一样的结果for (int i = 0 ; i < length0 - 1 ;i++){if (list0[i] == list0[i+1])System.out.println("a=" + list0[i] + ", b=" + list0[i]);}}
}

运行示例

请输入10个整数:10 9 8 7 6 5 4 3 2 1
a=1, b=2
a=1, b=3
a=1, b=4
a=1, b=5
a=1, b=6
a=1, b=7
a=1, b=8
a=1, b=9
a=1, b=10
a=2, b=1
a=2, b=3
a=2, b=4
a=2, b=5
a=2, b=6
a=2, b=7
a=2, b=8
a=2, b=9
a=2, b=10
a=3, b=1
a=3, b=2
a=3, b=4
a=3, b=5
a=3, b=6
a=3, b=7
a=3, b=8
a=3, b=9
a=3, b=10
a=4, b=1
a=4, b=2
a=4, b=3
a=4, b=5
a=4, b=6
a=4, b=7
a=4, b=8
a=4, b=9
a=4, b=10
a=5, b=1
a=5, b=2
a=5, b=3
a=5, b=4
a=5, b=6
a=5, b=7
a=5, b=8
a=5, b=9
a=5, b=10
a=6, b=1
a=6, b=2
a=6, b=3
a=6, b=4
a=6, b=5
a=6, b=7
a=6, b=8
a=6, b=9
a=6, b=10
a=7, b=1
a=7, b=2
a=7, b=3
a=7, b=4
a=7, b=5
a=7, b=6
a=7, b=8
a=7, b=9
a=7, b=10
a=8, b=1
a=8, b=2
a=8, b=3
a=8, b=4
a=8, b=5
a=8, b=6
a=8, b=7
a=8, b=9
a=8, b=10
a=9, b=1
a=9, b=2
a=9, b=3
a=9, b=4
a=9, b=5
a=9, b=6
a=9, b=7
a=9, b=8
a=9, b=10
a=10, b=1
a=10, b=2
a=10, b=3
a=10, b=4
a=10, b=5
a=10, b=6
a=10, b=7
a=10, b=8
a=10, b=9
请输入10个整数:9 9 8 7 6 5 4 3 2 1
a=1, b=2
a=1, b=3
a=1, b=4
a=1, b=5
a=1, b=6
a=1, b=7
a=1, b=8
a=1, b=9
a=2, b=1
a=2, b=3
a=2, b=4
a=2, b=5
a=2, b=6
a=2, b=7
a=2, b=8
a=2, b=9
a=3, b=1
a=3, b=2
a=3, b=4
a=3, b=5
a=3, b=6
a=3, b=7
a=3, b=8
a=3, b=9
a=4, b=1
a=4, b=2
a=4, b=3
a=4, b=5
a=4, b=6
a=4, b=7
a=4, b=8
a=4, b=9
a=5, b=1
a=5, b=2
a=5, b=3
a=5, b=4
a=5, b=6
a=5, b=7
a=5, b=8
a=5, b=9
a=6, b=1
a=6, b=2
a=6, b=3
a=6, b=4
a=6, b=5
a=6, b=7
a=6, b=8
a=6, b=9
a=7, b=1
a=7, b=2
a=7, b=3
a=7, b=4
a=7, b=5
a=7, b=6
a=7, b=8
a=7, b=9
a=8, b=1
a=8, b=2
a=8, b=3
a=8, b=4
a=8, b=5
a=8, b=6
a=8, b=7
a=8, b=9
a=9, b=1
a=9, b=2
a=9, b=3
a=9, b=4
a=9, b=5
a=9, b=6
a=9, b=7
a=9, b=8
a=9, b=9

Java黑皮书课后题第7章:*7.28(数学:组合)编写一个程序,提示用户输入10个整数,然后显示从这10个数中选出两个数的所有组合相关推荐

  1. Java黑皮书课后题第6章:*6.2(求一个整数各位数字之和)编写一个方法,计算一个整数各位数字之和。使用下面的方法头:public static int sumDigits(long n)

    6.2(求一个整数各位数字之和)编写一个方法,计算一个整数各位数字之和.使用下面的方法头:public static int sumDigits(long n) 题目 题目概述 槽点 代码 运行示例 ...

  2. Java黑皮书课后题第6章:*6.39(几何:点的位置)编程练习题3.32显示如何测试一个点是否在一个有向直线的左侧、右侧或在直线上,编写一个程序,输入三个点p0p1p2,显示p2是否在直线p0p1

    6.39(几何:点的位置)编程练习题3.32显示如何测试一个点是否在一个有向直线的左侧.右侧或在直线上,编写一个程序,输入三个点p0p1p2,显示p2是否在直线p0p1 题目 题目描述 编程练习题3. ...

  3. Java黑皮书课后题第6章:*6.20(计算一个字符串中字母的个数)编写一个方法,使用下面的方法体计算字符串中的字母个数。编写一个测试程序,提示用户输入字符串,然后显示字符串中的字母个数

    6.20(计算一个字符串中字母的个数)编写一个方法,使用下面的方法体计算字符串中的字母个数.编写一个测试程序,提示用户输入字符串,然后显示字符串中的字母个数 题目 题目描述 破题 代码 运行示例 题目 ...

  4. Java黑皮书课后题第7章:*7.22(计算一个字符串中大写字母的数目)编写程序,从命令行输入一个字符串,然后显示字符串中大写字母的数目

    7.22(计算一个字符串中大写字母的数目)编写程序,从命令行输入一个字符串,然后显示字符串中大写字母的数目 题目 题目描述 破题 代码 运行实例 题目 题目描述 7.22(计算一个字符串中大写字母的数 ...

  5. Java黑皮书课后题第2章:2.6(求一个整数各位数的和)读取一个0和1000之间的整数,并将给整数的各位数字相加

    2.6(求一个整数各位数的和)读取一个0和1000之间的整数,并将给整数的各位数字相加 题目 题目描述 运行示例 题目槽点与破题 题目槽点 破题 如何提取数字 代码块 方法评价 题目 题目描述 2.6 ...

  6. Java黑皮书课后题第11章:11.2(Person Student Employee Faculty Staff类)设计一个名为Person的类及其两个名为Student和Employee的子类

    Java黑皮书课后题第11章:11.2(Person Student Employee Faculty Staff类) 题目 缺陷 UML图 代码 Test02_MyDate.java:用于参考的My ...

  7. Java黑皮书课后题第9章:**9.13(Location类)设计一个名为Location的类,定位二维数组中的最大值及其位置。

    Java黑皮书课后题第9章:**9.13(Location类)设计一个名为Location的类,定位二维数组中的最大值及其位置 题目 破题 代码 Test13 Test13_Location 运行结果 ...

  8. Java黑皮书课后题第9章:**9.12(几何:交点)假设两条线段相交。第一条线段的两个端点是(x1, y1)和(x2, y2),第二条线段的两个端点是(x3, y3)和(x4, y4)

    Java黑皮书课后题第9章:**9.12(几何:交点)假设两条线段相交.第一条线段的两个端点是(x1, y1)和(x2, y2),第二条线段的两个端点是(x3, y3)和(x4, y4) 题目 破题 ...

  9. Java黑皮书课后题第9章:*9.11(代数:2*2的线性方程)为一个2*2的线性方程设计一个名为LinearEquation的类

    Java黑皮书课后题第9章:*9.11(代数:2*2的线性方程)为一个2*2的线性方程设计一个名为LinearEquation的类 题目 破题 代码 Test10 Test11_LinearEquat ...

  10. Java黑皮书课后题第9章:*9.10(代数:二次方程式)为二次方程式设计一个名为QuadraticEquation的类

    Java黑皮书课后题第9章:*9.10(代数:二次方程式)为二次方程式设计一个名为QuadraticEquation的类 题目 破题 代码 Test10 Test10_QuadraticEquatio ...

最新文章

  1. sklearn基于make_scorer函数构建自定义损失函数或者评估指标
  2. java 打地鼠 源代码_Java实现的打地鼠小游戏完整示例【附源码下载】
  3. 算法设计与分析 0-1背包问题 动态规划解法【超详细】
  4. C++ 类成员引用变量的使用
  5. php 缩略图 失真,WORDPRESS缩略图失真变形模糊的解决方法
  6. cudaMemcpyToSymbol使用
  7. 关于Vue 3.0 的改进 Proxy 代理实现数据驱动视图
  8. Putty密钥(PrivateKey)导入SecureCRT
  9. 谭浩强C语言第五版,学习笔记【7500字】【原创】
  10. 互联网寒冬!闭关60天学懂NDK+Flutter,专题解析
  11. 自媒体采集爆文工具,批量采集自媒体爆文
  12. IBC-身份标识密码技术
  13. JS通过高德地图将经纬度转换为地理位置
  14. Ckeditor5 整合Ckfinder3 防出错实战教程(二)整合篇
  15. 绝知此事要躬行|fatal: not in a git directoryError: Command failed with exit 128: git
  16. 中国股票市场化整为零,然后聚沙成塔
  17. CAD梦想画图中“轻松手绘”功能使用方法
  18. 怎么把本地rpm包导入linux,Linux在本地yum源中增加rpm包(示例代码)
  19. PAN++ 端到端场景文本识别【识别部分精讲】
  20. Broken Necklace(USACO官方)

热门文章

  1. 微服务怎么部署到服务器的_浅谈微服务部署方案
  2. “‘天池·TEENTOP杯’AI少年挑战赛”正式启动!
  3. 江门农商银行引入阿里云AnalyticDB,实现数据自助分析平台升级
  4. 万万没想到,枯燥的“机器学习”还可以这样学!
  5. 动效设计中的隐喻-1
  6. 18道经典MySQL面试题,祝您升职加薪
  7. 什么是Ajax和JSON,它们的优缺点
  8. .Oracle管理及常用基础脚本
  9. i5 11300H和i5 10300H 的区别
  10. FastDFS入门步骤