zoukankan      html  css  js  c++  java
  • 基础编程-java之股神

    买了一支股票,他知道从他买股票的那天开始,股票会有以下变化:第一天不变,以后涨一天,跌一天,涨两天,跌一天,涨三天,跌一天...依此类推。

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

    这是本人在某网站看到的简单编程题。大伙们可以尝试看看!

    个人认为多做些算法编程题,有利于提高自己的编程水平,偏向机器思维

    下面是脑残博主的暴力式答题:

    public class Demo1 {
    public static void main(String[] args) {
    Scanner sc=new Scanner(System.in);
    while(sc.hasNextInt()){
    int a=sc.nextInt();
    System.out.println(getPrice(a));
    }
    }
    public static int getPrice(int n){
    double n1=n;
    double m;
    m=Math.sqrt(((2*n)+0.25));//这里是博主用笔在本子上推算出的公式
    int p=(int)Math.floor((m-0.5));//向下取整就能得出股价下跌的天数
    int sum=(int)(n1-(2*p)+2);
    return sum;
    }
    }

    下面为大家附上正确解答,博主看到之后。。。。。要哭晕在厕所了

    import java.util.Scanner;


    public class Main {
    public static void main(String[] args) {
    Scanner in = new Scanner(System.in);
    Integer n = null;
    while((n = in.nextInt())!=null){
    int price = 1;
    int i=2;int j=3;
    for(int m=1;m<n;m++){
    if(m==i){
    price--;
    i=i+j;//明明可以直接找到跌的天数的规律,用一个变量来存储就可以了,简单吧
    j++;
    }
    else{
    price++;}
    }
    System.out.println(price);

    }
    }

    }

    第一次发文,谢谢!

    题目答案均来自某网站,这里不具体透露,避免打广告嫌疑。

  • 相关阅读:
    静态与非静态(转改)
    关于odp.net的FetchSize属性
    SQL_SERVER 导oracle(转)
    win7电脑上wifi
    Oracle对象统计信息
    SQL_SERVER 连接oracle(转)
    linq in 语法
    关于引擎的设计
    温习设计模式
    技巧类
  • 原文地址:https://www.cnblogs.com/oldAlcazar/p/5729577.html
Copyright © 2011-2022 走看看