2010年10月1日金曜日

PKU Judge Online 2140 Herd Sums

■2140 Herd Sums

□Problem
自然数nを連続した自然数の和で表すには何通りのやり方があるか.
15の時は4通り.
15=1+2+3+4+5=4+5+6=7+8

□Solution
昔,考えた方法で解きました.同じようなことが書かれているページがあったので↓参照ということで.
http://www.bun-eido.co.jp/t_math/sjournal/sj28/sj282530.pdf

□Code
  1. package p2140;  
  2.   
  3. import java.util.*;  
  4. import java.lang.*;  
  5. import java.math.*;  
  6. import java.io.*;  
  7.   
  8. import static java.lang.Math.*;  
  9. import static java.util.Arrays.*;  
  10.   
  11. // AC  
  12. public class Main{  
  13.   
  14.     Scanner sc=new Scanner(System.in);  
  15.   
  16.     final int INF=Integer.MAX_VALUE;  
  17.     final double EPS=1e-9;  
  18.   
  19.     void run(){  
  20.         int n=sc.nextInt();  
  21.         n*=2;  
  22.         int m=(int)Math.sqrt(n);  
  23.         int ans=0;  
  24.         for(int i=1; i<=m+1; i++){  
  25.             if(n%i==0){  
  26.                 int d=i;  
  27.                 int e=n/i;  
  28.                 if(d>e)  
  29.                     break;  
  30.                 if((d+e)%2==1)  
  31.                     ans++;  
  32.             }  
  33.         }  
  34.         println(ans+"");  
  35.     }  
  36.   
  37.     void print(String s){  
  38.         System.out.print(s);  
  39.     }  
  40.   
  41.     void println(String s){  
  42.         System.out.println(s);  
  43.     }  
  44.   
  45.     public static void main(String[] args){  
  46.         // System.setOut(new PrintStream(new BufferedOutputStream(System.out)));  
  47.         new Main().run();  
  48.     }  
  49. }  

0 件のコメント: