解决长字符串的最佳方法是什么?
what is the best way to solve the big number string to long?
我正在使用 problem.The 以下代码适用于小字符串,但在这种情况下我必须使用长 numbers.what 可能是最好的解决方案?
它给出了非常长的字符串的错误,所以如何接近解决最好的方法。顺便说一句,它是 UVA424。网上有很多解决方案,我喜欢用我的方式解决,所以它是代码的一部分
import java.util.Scanner;
public class IntegerInquiry {
public static void main(String args[]) {
Scanner input = new Scanner(System.in);
long total = 0;
while (input.hasNext()) {
String i = input.next();
if(i.equals("0")) break;
int size = i.length();
if(size <=100 ){
long a = Long.parseLong(i);
total = total+a;
}
}
System.out.println(total);
}
}
对于大数字,您可以使用 BigDecimal
Scanner input = new Scanner(System.in);
BigDecimal bigDecimal = new BigDecimal(0);
while (input.hasNext()) {
String i = input.next();
if (i.equals("0"))
break;
bigDecimal = bigDecimal.add(new BigDecimal(i));
}
input.close();
System.out.println("BigDecimal " + bigDecimal);
System.out.println("Long " + bigDecimal.longValue()); // caution - narrowing
我正在使用 problem.The 以下代码适用于小字符串,但在这种情况下我必须使用长 numbers.what 可能是最好的解决方案?
它给出了非常长的字符串的错误,所以如何接近解决最好的方法。顺便说一句,它是 UVA424。网上有很多解决方案,我喜欢用我的方式解决,所以它是代码的一部分
import java.util.Scanner;
public class IntegerInquiry {
public static void main(String args[]) {
Scanner input = new Scanner(System.in);
long total = 0;
while (input.hasNext()) {
String i = input.next();
if(i.equals("0")) break;
int size = i.length();
if(size <=100 ){
long a = Long.parseLong(i);
total = total+a;
}
}
System.out.println(total);
}
}
对于大数字,您可以使用 BigDecimal
Scanner input = new Scanner(System.in);
BigDecimal bigDecimal = new BigDecimal(0);
while (input.hasNext()) {
String i = input.next();
if (i.equals("0"))
break;
bigDecimal = bigDecimal.add(new BigDecimal(i));
}
input.close();
System.out.println("BigDecimal " + bigDecimal);
System.out.println("Long " + bigDecimal.longValue()); // caution - narrowing