一道简单的百度笔试题

来源:互联网 发布:java 退出递归 返回值 编辑:程序博客网 时间:2024/05/16 06:26

一、引言

         试着做了一下一道百度笔试题,做着还蛮有意思的,贴出来和大家一起分享一下

二、题目

        懒一回,就不敲了,直接贴截图了,哈哈。


三、我的解法

首先考虑编程语言,我最熟悉的莫过于java,那就用java来编写吧。

我的思路:输入都是成组的,第一个是n,第二个是m,因此可以用这一点做为数据分割的原则。不多说,看代码:

for(int i=1;i<args.length;i+=2){double n=Double.parseDouble(args[i-1]);double m=Double.parseDouble((args[i]));getResult(n, m);}

获取到了n和m,那就可以考虑算法了 。还是不多说,看代码:

public static void getResult(double n,double m){double result=0;while(m--!=0){result+=n;n=Math.sqrt(n);}System.out.printf("%.2f\n",result);}
嗯,不错,就是简简单单的几行代码,包含的知识点可真不少。不得不说,考察的基础知识还是蛮多的。

配置运行参数:


运行结果:

94.73
3.41
121.57

四、完整代码

/** * Project Name:CloudLibrary * File Name:TestDriver.java * Package Name:test * Date:2015年9月16日上午10:04:54 * Copyright (c) 2015, winton_by@126.com All Rights Reserved. * */package test;/** * ClassName: TestDriver date: 2015年9月16日 上午10:04:54 *  * @author winton_by@126.com * @version v1.0 */public class TestDriver {public static void main(String args[]) {for (int i = 1; i < args.length; i += 2) {double n = Double.parseDouble(args[i - 1]);double m = Double.parseDouble((args[i]));getResult(n, m);}}public static void getResult(double n, double m) {double result = 0;while (m-- != 0) {result += n;n = Math.sqrt(n);}System.out.printf("%.2f\n", result);}}

五、最后说一句

       大家都相处解法了吗?想必也有人有更好的解法吧,希望能指教一下,共同进步,一起成长嘛。



1 0
原创粉丝点击