java基础中的简单算法,在线等

zgycsmb 2012-07-18 03:18:09
java基础中的简单算法,在线等

要求:
1/1!+1/2!+1/3!+....

如何写代码呀,thanks
...全文
234 16 打赏 收藏 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
算法不是太懂,学习下
「已注销」 2012-07-19
  • 打赏
  • 举报
回复
用递归做,或者自己查api文档吧。楼主自己多想想
  • 打赏
  • 举报
回复
直接出值吧:Math.E - 1
ZZZ5512536 2012-07-18
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 的回复:]

建议大家不要回复这种伸手党。
[/Quote]

可以不贴代码,给点思路即可
jason_deng 2012-07-18
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 的回复:]
建议大家不要回复这种伸手党。
[/Quote]

伸手党
Mourinho 2012-07-18
  • 打赏
  • 举报
回复
LZ需要动动脑子,书后习题难度~
达达KZT 2012-07-18
  • 打赏
  • 举报
回复
建议大家不要回复这种伸手党。
jlu_lamp_lamp 2012-07-18
  • 打赏
  • 举报
回复
public class Test
{
public static void main(String[] args)
{
new Test();
}

public Test()
{
double sum = 0;
for(int i = 1 ; i < 3 ; i++)
{
sum += 1.0/calFactorial(i);
}
System.out.println(sum);
}

public double calFactorial(int i)
{
if(i == 1)
{
return 1;
}
else
{
return calFactorial(i - 1) * i;
}
}
}

这个是用了递归的算法
Yynynyn 2012-07-18
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 的回复:]
阶乘的话考虑用BigInter或者重写乘法规则,不然很容易溢出。
[/Quote]
要考虑数据越界问题
lost_guy_in_scut 2012-07-18
  • 打赏
  • 举报
回复
阶乘的话考虑用BigInter或者重写乘法规则,不然很容易溢出。
dffg1990 2012-07-18
  • 打赏
  • 举报
回复
用两个变量,比如一个sum用于保存和,另一个x用于保存阶乘
假设要求计算到n!的话,主要部分如下
sum=0;x=1;
for(int i=1;i<=n;i++){
x=1*x;
sum=sum+1/x;
}
jason_deng 2012-07-18
  • 打赏
  • 举报
回复
public class JieCheng {

/**
* @param args
*/
// 1/1!+1/2!+1/3!+....

public static float sum(int i) {

float result = 1;

for (int j = i; i > 1; i--) {
result = result * i;
}

return 1 / result;
}

public static void main(String[] args) {
// TODO Auto-generated method stub

int index = 3;

float sum = 0;

for (int i = 1; i <= index; i++) {
sum = sum + JieCheng.sum(i);
}
for (int i = 1; i <= index; i++) {
System.out.println(JieCheng.sum(i));
if (i < index) {
System.out.println("+");
}

}
// System.out.println("-------------");
System.out.println("=");

System.out.println(sum);
System.out.println("-------------");
for (int i = 1; i <= index; i++) {
if (i < index) {
System.out.print("1/" + i + "! + ");
} else {
System.out.print("1/" + i + "! = " + sum);
}
}

}

}
风火轮 2012-07-18
  • 打赏
  • 举报
回复


private static double getResult(int n){
double r=0.0;
for(int i=1;i<=n;i++){
r+=(1.0/(get(i)));
}
return r;
}

private static double get(int i){
double r=1.0;
for(int j=1;j<=i;j++){
r*=j;
}
return r;
}


jason_deng 2012-07-18
  • 打赏
  • 举报
回复
public class JieCheng {

/**
* @param args
*/
// 1/1!+1/2!+1/3!+....

public static float sum(int i) {

float result = 1;

for (int j = i; i > 1; i--) {
result = result * i;
}

return 1 / result;
}

public static void main(String[] args) {
// TODO Auto-generated method stub

int index = 3;

float sum = 0;

for (int i = 1; i <= index; i++) {
sum = sum + JieCheng.sum(i);
}
for (int i = 1; i <= index; i++) {
System.out.println(JieCheng.sum(i));
if(i<index){
System.out.println("+");
}

}
//System.out.println("-------------");
System.out.println("=");
System.out.println(sum);
}

}
kkkddd44 2012-07-18
  • 打赏
  • 举报
回复
求极限?

62,620

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧