一道简单的百度笔试题

一、引言

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

二、题目

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

三、我的解法

首先考虑编程语言,我最熟悉的莫过于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);
	}
}

 

 

 

五、最后说一句

 

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

 

 

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值