---恢复内容开始---
京东简历通过了,进去看了以下笔试的算法题的格式,发现和leetcode有点差别,需要自己写Main函数和输入。提前熟悉一下。网址是:http://www.acmcoder.com/index
题目:有股神吗?
有,小赛就是!
经过严密的计算,小赛买了一支股票,他知道从他买股票的那天开始,股票会有以下变化:第一天不变,以后涨一天,跌一天,涨两天,跌一天,涨三天,跌一天...依此类推。
为方便计算,假设每次涨和跌皆为1,股票初始单价也为1,请计算买股票的第n天每股股票值多少钱?
题目描述
输入
输入包括多组数据;
每行输入一个n,1<=n<=10^9 。
|
样例输入 1 2 3 4 5
|
输出
请输出他每股股票多少钱,对于每组数据,输出一行。
|
样例输出 1 2 1 2 3
|
思路: 先把这个序列补充完整。1212323453456745678.
可以观察到,每一个递增序列的数字的个数都是+1。可以把每次递增数字个数发生的变化抽象在-1的时候。同时在-1的过程中,递增的数字个数从1开始重新计数。
代码如下:
import java.util.*; import java.io.*; public class Main{ public static void main(String args[]){ Scanner scan=new Scanner(System.in); int date; date=scan.nextInt(); int add=0,count=2;int price=0; for(int i=1;i<=date;i++){ if(count==add){ price--; //股票跌一天 count++; //这轮总共由count个数字是递增的 add=1; //重新开始这一轮的计数 }else { price++; add++; } } System.out.println(price); } }