我工作的这个代码,使用大的数字:爪哇 - 一长串错误:不兼容的类型
import java.math.*;
import java.util.*;
import java.lang.*;
public class main {
public static void main(String[] args){
double max = 1e+15;
List<Integer> sum = new ArrayList<Integer>();
sum.add(1);
long aux = 0;
for(long i = 1;i<max;i++){
sum.add(sum.get(i-1)+scomponi(sum.get(i-1),aux));
if(i+1==1e+7 || i+1==1e+8 || i+1==1e+9 || i+1 == 1e+10 || i+1 == 1e+10 || i+1==1e+11 || i+1==1e+12 || i+1==1e+13 || i+1==1e+14)
System.out.println(i+1+"-imo -> "+sum.get(i));
}
System.out.println(sum.get(sum.size()-1));
}
public static Long scomponi(Long num,Long tot) {
while (num > 0) {
Long digit = num % 10;
tot += digit;
num /= 10;
}
return tot;
}
}
但我没能找到这个错误的解决方案:
这是什么意思?我在java中并不擅长,但是这是如此简单的代码,出了什么问题?
就像这个错误告诉你,你在get方法中使用long而不是int。这意味着,当值将高于int限制时,Java需要截断多余的内容。所以它告诉你有一个错误 – AxelH
1e + 15 >>> 2147483647 ..我不能使用INT,所以我不能使用列表..Thnak你 – Teshtek
数组是基于整数我相信;)所以你需要找到一些技巧(如多个列表)。但为什么这么多?记忆足够了吗? – AxelH