在java中写个程序,输入10组数字,每组为0-3之间的6位数,算出相似位数最多的两组,并打印结果。

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在java中写个程序,输入10组数字,每组为0-3之间的6位数,算出相似位数最多的两组,并打印结果。相关的知识,希望对你有一定的参考价值。

如:
“0” 110212
“1” 022011
“2” 231221
“3” 222121
“4” 203022
“5” 030111
“6” 220122
“7” 212232
“8” 122232
“9” 200123
打印 :7组 8组
结果是:2232
位数4位

/*
* 在java中写个程序,输入10组数字,每组为0-3之间的6位数,算出相似位数最多的两组,并打印结果。
* 如:
“0” 110212
“1” 022011
“2” 231221
“3” 222121
“4” 203022
“5” 030111
“6” 220122
“7” 212232
“8” 122232
“9” 200123
打印 :7组 8组
结果是:2232
位数4位
代码如下所示:
*/
import java.util.Scanner;

public class Main3
public static void main(String args[])
String [][]str=new String[10][2];
Scanner scanner=new Scanner(System.in);
for(int i=0;i<10;i++)
//如果没有前面的“0”,“1”……的输入,我们手动添加即可,或者改为1维数组
str[i][0]=scanner.next();
//我们在这里要以String的格式读取数字,以便于后面的计算和处理
str[i][1]=scanner.nextLine();
str[i][1]=str[i][1].trim();

String temp[]=new String[2];
int count[]=new int[45];//0需要和2-9比,2需要和3-9比,以此类推,8比9,9不比,所以一共有45个比较结果
String best[]=new String[45];
String choice[]=new String[45];
int cn=0;
for(int i=0;i<9;i++)
for(int j=i+1;j<=9;j++)
for(int l=0;l<6;l++)
if(str[i][1].charAt(l)==str[j][1].charAt(l))
//如果两个数列中有相同的位数,那么这两个数组合的计数器加一
//并且将相同位数加入对应组合的字符串中
count[cn]++;
if(best[cn]!=null)
best[cn]+=String.valueOf(str[i][1].charAt(l));
else
best[cn]=String.valueOf(str[i][1].charAt(l));



choice[cn]=String.valueOf(i)+";"+String.valueOf(j);
cn++;



int max=count[0];
int max_n=-1;
for(int i=1;i<45;i++)
//找到相同位数最多的那一位
if(max<=count[i])
//这里是相同数量取最后一组,满足楼主的要求
//若要相同数量取前一组,改为max<count[i]即可
max=count[i];
max_n=i;

//System.out.println(max_n+"\t"+max+"\t"+best[max_n]);
int index=choice[max_n].indexOf(";");
System.out.println(choice[max_n].substring(0,index)+"组\t"+choice[max_n].substring(index+1)+"组");
System.out.println("结果是:\t"+best[max_n]);
System.out.println("位数"+count[max_n]+"位");




运行结果:
输入:
“0” 110212
“1” 022011
“2” 231221
“3” 222121
“4” 203022
“5” 030111
“6” 220122
“7” 212232
“8” 122232
“9” 200123
输出:
7组 8组
结果是: 2232
位数4位
完全满足楼主要求,并且有注释~
加不加分看楼主你的心情,不过帮忙点下“对我有帮助”呗~谢谢了
参考技术A 楼上神人……

以上是关于在java中写个程序,输入10组数字,每组为0-3之间的6位数,算出相似位数最多的两组,并打印结果。的主要内容,如果未能解决你的问题,请参考以下文章

求java程序:输入n个正整数,分成两组求和,求两列数字组合使这两组的和最接近平均数

用C语言写:36个数字平均分成4组(每组九个数字)有多少种分法,并显示分组

Java练习 SDUT-1188_各位数字之和排序

18: 数字之和

如何在100万个整数中 选出最大的10个 java

编写java程序:输入10个整数,然后从这10个数中找出最接近它们平均值的那个数.