股神

来源:互联网 发布:ubuntu怎么注销用户 编辑:程序博客网 时间:2024/05/17 02:54

题目描述:


有股神吗?
有,小赛就是!
经过严密的计算,小赛买了一支股票,他知道从他买股票的那天开始,股票会有以下变化:第一天不变,以后涨一天,跌一天,涨两天,跌一天,涨三天,跌一天...依此类推。

为方便计算,假设每次涨和跌皆为1,股票初始单价也为1,请计算买股票的第n天每股股票值多少钱?


输入

输入包括多组数据;

每行输入一个n,1<=n<=10^9 。


输出

请输出他每股股票多少钱,对于每组数据,输出一行。


我的答案:

import java.util.*;class Main{  public static void main(String[] args){    Scanner in = new Scanner(System.in);    while(in.hasNext()){      long n = in.nextLong()-1;      boolean flag =false;      long m=0;      long extra = 0;      for(long i=1;i<=n;i++){        long j = ((i*i)+3*i)/2;        if( j == n){          flag = true;        }        if(flag){          m= i;          break;        }      }      if(m==0){        for(long i=1;i<=n;i++){          long j = ((i*i)+3*i)/2;          if( j > n){            flag = true;          }          if(flag){            m= i-1;            break;          }      }        long j = ((m*m)+3*m)/2;        extra = n - j;      }      long j = ((m*m)-m)/2;      long result = j+extra+1;     // System.out.println(String.valueOf(m)+"  "+String.valueOf(extra));      System.out.println(String.valueOf(result));    }  }}


原创粉丝点击