输入包括两行,第一行包括一个整数n(1 ≤ n ≤ 50),即玩家的人数 第二行n个整数x[i](0 ≤ x[i] ≤ 100000),即每个玩家写下的整数。
输出一个整数,表示赢得游戏的那个玩家获得的最大数字是多少。
3 9638 8210 331
3689
import java.util.*; public class Main { public static void main(String[] args) { // TODO Auto-generated method stub Scanner cin=new Scanner (System.in); int n=cin.nextInt();//玩家人数(数字数量) String str[]=new String [n]; for(int i=0;i<n;i++) { String s=cin.next(); String s1=""; int b[]=new int [s.length()]; for(int j=0;j<s.length();j++) { b[j]=Integer.parseInt(String.valueOf(s.charAt(j))); } Arrays.sort(b); int dd=0; if(b[dd] !=0)str[i]=String.valueOf(b[dd]); else { dd++; str[i]=String.valueOf(b[dd]); } for(int j=dd+1;j<b.length;j++) { if(j==0 && b[j]==0)continue; else str[i]=str[i]+String.valueOf(b[j])+s1; } } int max=Integer.parseInt(str[0]); for(int i=1;i<n;i++) { max=Math.max(max, Integer.parseInt(str[i])); } System.out.print(max); } }
假设测试数据n=3,输入的数分别为9638 8210 331 ---------将这三个整数输入到字符串数组中, 然后再用for循环将字符串数组转变为字符数组,当n=0时,输入字符串的9638,转变为 '9''6''3''8'四个字符,然后进行升序排列,如果不为0 在用stringbuffer追加到里面去import java.util.Scanner;
import java.util.Arrays;
public class Main
{
public static void main(String[]args)
{
Scanner input=new Scanner(System.in);
int n=input.nextInt();
String[]data=new String[n];
for(int i=0;i<n;i++)
{
data[i]=input.next();
}
int temp=0;
int max=0;
for(int i=0;i<n;i++)
{
StringBuffer sb= new StringBuffer();
char[]arr=data[i].toCharArray();
Arrays.sort(arr);
for(int j=0;j<arr.length;j++)
{
if(arr[j]!='0')
{
sb.append(arr[j]);
}
}
temp=Integer.parseInt(sb.toString());
if(temp>max)
{
max=temp;
}
}
System.out.println(max);
}
}
import java.util.*; public class Main{ public static void main(String[] args){ try(Scanner in = new Scanner(System.in)){ int n = in.nextInt(),i = 0; String[] str = new String[n]; while(i < n){ str[i] = in.next(); i++; } System.out.println(helper(str)); } } public static int helper(String[] str){ int max = 0; for(String s:str){ char[] a = s.toCharArray(); Arrays.sort(a); max = Math.max(Integer.parseInt(new String(a)),max); } return max; } }