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);

    }
    }

    }

    第一次发文,谢谢!

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

  • 相关阅读:
    《Docker Deep Dive》Note
    使用 Angular RouteReuseStrategy 缓存(路由)组件
    我的 VSCode 配置
    TCP/IP协议
    Fiddler代理手机抓包
    基于 Docker 和 GitLab 的前端自动化部署实践笔记
    Vue.js 2.x render 渲染函数 & JSX
    服务器免密登陆脚本
    gitlab+jenkins+pm2+rsync实现node的自动化部署
    nginx常用
  • 原文地址:https://www.cnblogs.com/oldAlcazar/p/5729577.html
Copyright © 2011-2022 走看看