public class Main { public static void main(String[] args) { //write your code here........ //由于数列是从9-9999999999,可知有10位 /* 分析: 第一位:10-1 第二位:100-1 第三位:1000-1 第四位:10**4-1; ....... 第n位:10**n-1; 当 i 增加到 10 时,Math.pow(10, 10) 的值为 10,000,000,000,这超出了 int 类型的最大范围,所以下面不建议用int类型,会溢出值。 */ //定义一个长度为10的动态数组 long [] list = new long [10]; //遍历数组 for (int i = 1; i < list.length + 1; i++) { //定义一个变量用于添加到数组中去 long append_num = (long)(Math.pow(10,i)-1); //因为Math包得到的数据一般都是小数,这里用了强制转换 //添加到数组中去 list[i - 1] = append_num; } //添加成功,进行求和 //定义一个sum变量,用于存储和 long sum = 0; //遍历数组 for (int i = 0; i < list.length; i++) { // System.out.println(list[i]); sum=sum+list[i]; } System.out.print(sum); } }