package 练习算法;
import java.math.BigInteger;
import java.util.;
import java.io.;
public class P1781 {
//法一
//public static void main(String[] args) {
// Scanner sc = new Scanner(System.in);
// int i,k=0;
// int n=0;
//
// BigInteger[] m= new BigInteger[22];
//
// while(sc.hasNext())
// {
// try {
// n = sc.nextInt();//10
//
// } catch (InputMismatchException e1) {
//
// for(i=1;i<=n;i++)
// {
// m[i]=sc.nextBigInteger();
// }
// BigInteger s=m[1];
// for(i=1;i<=n;i++)
// {
// if(s.compareTo(m[i])<0)
// {
// s=m[i];
// k=i;
// }
// }
// System.out.println(k);
// System.out.println(s);
// }
//
// }
//
//}
public static void main(String[] args) {//法二
Scanner sc = new Scanner(System.in);
int n=sc.nextInt();
int k=0;
String max="";
for(int i=1;i<=n;i++)
{
String str=sc.next();
if(str.length()>max.length() || str.length()==max.length() && str.compareTo(max)>0)
{
max=str;
k=i;
}
}
System.out.println(k);
System.out.println(max);
}
}
对于这道题的两种办法,第一种是利用java大数的知识,按照题目来模拟,但是在输入的个数是10 但是,输入却有15个时候,报错:java.util.InputMismatchException,,至今还没有找到怎么跳过异常的办法,在第二种方法中,利用字符串的知识,很好的比较大小,她是一个一个取的,所以对于最后多出的5个数据没有纳入,所以没有报错,利用字符串compareTo的方法比较大小。