我正在尝试解决项目欧拉的第三个问题,它需要一个12数字,问题是我写的代码没有运行:(你能帮我弄清楚吗?这个错误是如此令人困惑:
Exception in thread "main" java.lang.NumberFormatException: For input string: "51475143 "
at java.base/java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
at java.base/java.lang.Integer.parseInt(Integer.java:652)
at java.base/java.math.BigInteger.<init>(BigInteger.java:546)
at java.base/java.math.BigInteger.<init>(BigInteger.java:675)
at Euler.main(Euler.java:9)
下面是完整的代码:
public static void main(String[] args) {
BigInteger N = new BigInteger("600851475143 ");
BigInteger PrimeNumber;
for(long i=2;i<250000;i++)
{
String code=" ";
for(long j=2;j<i;j++)
{
if(i%j==0)
code="exit";
}
if(code=="exit")
break;
PrimeNumber=BigInteger.valueOf(i);
BigInteger R=N.remainder(PrimeNumber);
if(R.equals(0))
{
System.out.println(N.divide(R));
System.out.println("That's The answer");
}
}
}
}
发布于 2018-09-21 22:55:27
删除中的空格:
BigInteger N = new BigInteger("600851475143 ");
目标为:
BigInteger N = new BigInteger("600851475143");
发布于 2018-09-21 22:56:59
删除字符串中的空格。
BigInteger N = new BigInteger("600851475143 ");
现在应该是..。
BigInteger N = new BigInteger("600851475143");
发布于 2018-09-21 23:03:08
正如上面回答的那样,字符串中有一个空格符号。为了避免这种输入错误,有必要使用String.trim()
方法,它可以删除字符串开头和结尾的空格。
Smth喜欢:
String num = "600851475143 ";
BigInteger N = new BigInteger(num.trim());
https://stackoverflow.com/questions/52446295
复制相似问题