当前位置: 代码迷 >> 综合 >> HDOJ 2114 Calculate S(n)
  详细解决方案

HDOJ 2114 Calculate S(n)

热度:50   发布时间:2023-10-21 19:52:45.0

HDACM2114

此题关键在于发现s(n)n到10000是一个循环s(10000)=0,s(10001)=1,所以这是关键点。
还有输出格式是4位且不足左边补0采用System.out.printf(“%04d”,s[n%10000])
输出; 同时在求s(n)时,记住每次运算前都要%10000,否则会出现负值

import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner sc = new Scanner(System.in);int s[] = new int[10001];for (int i = 1; i < s.length; i++) {s[i] += (s[i-1]+(((i%10000)*(i%10000))%10000*(i%10000))%10000)%10000;}while (sc.hasNext()) {int n = sc.nextInt();System.out.printf("%04d",s[n%10000]);System.out.println();}sc.close();}
}