zoukankan      html  css  js  c++  java
  • HDOJ 2802 F(N)

    Problem Description

    Giving the N, can you tell me the answer of F(N)?

    Input
    Each test case contains a single integer N(1<=N<=10^9). The input is terminated by a set starting with N = 0. This set should not be processed.

    Output
    For each test case, output on a line the value of the F(N)%2009.

    Sample Input
    1
    2
    3
    0

    Sample Output
    1
    7
    20

    一般这种让根据公式求出对应项的值得题都有规律 (有一个循环,此题的循环为4018(注意 这种有循环规律的是让你输出对应项对某个数取余后的题))可以先打表写出有限个数的结果,再观察规律,或者直接写代码判断是否进入了循环。

    import java.math.BigDecimal;
    import java.util.Scanner;
    
    public class Main {
        static int[] f = new int[10000];
        public static void main(String[] args) {
            f[1]=1;
            f[2]=7;
            for(int i=3;i<=4018;i++){
                f[i] = (f[i-2]-((i-1)*(i-1)*(i-1))+(i*i*i))%2009;
                //System.out.println(i+" "+f[i]);
            }
            Scanner sc = new Scanner(System.in);
            while(sc.hasNext()){
                int n = sc.nextInt();
                if(n==0)
                    return ;
    //          for(int i=3;i<100000;i+=2){
    //              if(f[i]==1&&f[i+1]==7){
    //                  System.out.println(i-1);
    //                  break;
    //              }
    //          }
                //判断多久开始循环
                System.out.println(f[n%4018]);
            }
    
        }
    
    }
    
  • 相关阅读:
    javascript-事件
    javascript-数组简单的认识
    javascript-dom操作
    JavaScript入门
    python语言程序设计?
    4,14
    python第二周。2019.4.13
    python第二周
    python语言程序设计9
    python语言程序设计8
  • 原文地址:https://www.cnblogs.com/webmen/p/5739383.html
Copyright © 2011-2022 走看看