题目描述
最近谷学长遇到了麻烦的问题,你能帮帮他吗?
题目是这样的:计算SUM(n) = 1 + 2 + 3 + ... + 10^n。满足n<=100 000。
输入描述
输入包含多组数据,每组数据一行,包括一个整数n(n<=100 000)。当n=-1时输入终止。
输出描述
对于每个n输出相应的和。
样例输入
1
2
-1
样例输出
55
5050
提示
人家……人家真的不是求和题啦 喵~
下面是我的代码:
这道题也有提示,不是真正的求和题,可以先用等差数列公式来找规律:
class test{ public static void main(String[] args) { int n; Scanner scanner = new Scanner(System.in); while (!scanner.hasNext("-1")){ n=scanner.nextInt(); double pow = Math.pow(10, n); System.out.println((long) ((1+pow)*pow)/2); } } }
运行结果如下:
1
55
2
5050
3
500500
4
50005000
5
5000050000
可以看到没一个结果数都有两个“5”和两组(n-1)个“0”所以我们可以使用字符串输入printf:
public class test1 { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int n; while (!scanner.hasNext("-1")){ n=scanner.nextInt(); if (n==0){ System.out.printf("1"); }else { System.out.printf("5"); for (int i = 0; i < n - 1; i++) { System.out.printf("0"); } System.out.printf("5"); for (int i = 0; i < n - 1; i++) { System.out.printf("0"); } System.out.printf("\n"); } } } }