HDOJ 2114 Calculate S(n)

来源:互联网 发布:逆战刷枪软件下载 编辑:程序博客网 时间:2024/05/16 15:44

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();    }}
原创粉丝点击