华为机试题--数列求和
来源:互联网 发布:js屏蔽查看网页源代码 编辑:程序博客网 时间:2024/05/16 11:40
一、问题描述
编写程序,输入一个正整数n,求下列算式的值。
要求定义和调用函数fact(k)计算k的阶乘,函数返回值的类型是double。
1+1/2!+ .... +1/n!
输出保留5位小数。
下面是一些合理的表达式的例子:
Input 5
Output 1.71667
二、算法
package com.albertshao.csi.interview;import java.math.BigDecimal;import java.math.RoundingMode;import java.text.DecimalFormat;/** * 数列求和 * @author albertshao * */public class Main35 {DecimalFormat df = new DecimalFormat(".00000");public double fact(int k) {double sum = 1d;if (k == 0) {return sum;} else {sum = k * fact(k-1);}return sum;}public double getResult(int n) {double result = 0d;for (int i = 1; i <= n; i++) {result += 1 / fact(i);}return Double.parseDouble(df.format(result));}public static void main(String[] args) {Main35 m = new Main35();System.out.println(m.getResult(5));}}
运行结果
1.71667
看点:递归方法的书写, 小数点位数的保留
0 0
- 华为机试题--数列求和
- 华为机试题:大数求和
- [华为机试练习题]51.数列求和
- 整数循环节求和-华为机试题
- 2016 华为机试题之整数循环节求和
- 华为机试题:Fibonacci数列的计算和转换
- 数列求和
- 数列求和
- 数列求和
- 数列求和
- 数列求和
- 数列求和
- 数列求和
- 数列求和
- 数列求和
- 数列求和
- 数列求和
- 数列求和
- JAVA基础之泛型应用
- 常用JavaScript
- file类renameTo使用小demo
- codeforces C. Team
- VC6.0使用教程-30分钟玩转Microsoft Visual C++ 6.0
- 华为机试题--数列求和
- Codeforces Round #235 (Div. 2)B. Sereja and Contests
- NSExpression
- codeforces A. Vanya and Cards
- 华为机试题---四舍五入
- 十款PHP开发者编码工具 你用过哪些?
- javac,使用"-d ."与省略-d的区别
- codeforces_235_div2解题报告
- 删除一个字符串里出现次数最多(少)的子字符串