□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
- package p2140;
- import java.util.*;
- import java.lang.*;
- import java.math.*;
- import java.io.*;
- import static java.lang.Math.*;
- import static java.util.Arrays.*;
- // AC
- public class Main{
- Scanner sc=new Scanner(System.in);
- final int INF=Integer.MAX_VALUE;
- final double EPS=1e-9;
- void run(){
- int n=sc.nextInt();
- n*=2;
- int m=(int)Math.sqrt(n);
- int ans=0;
- for(int i=1; i<=m+1; i++){
- if(n%i==0){
- int d=i;
- int e=n/i;
- if(d>e)
- break;
- if((d+e)%2==1)
- ans++;
- }
- }
- println(ans+"");
- }
- void print(String s){
- System.out.print(s);
- }
- void println(String s){
- System.out.println(s);
- }
- public static void main(String[] args){
- // System.setOut(new PrintStream(new BufferedOutputStream(System.out)));
- new Main().run();
- }
- }
0 件のコメント:
コメントを投稿