在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个正整数,分成两组求和,求两列数字组合使这两组的和最接近平均数