编程数学

问题 E: 计算机中的数学

题目描述 description

输入一个正数x和一个正整数n,求下列算式的值。要求顶一个调用2个函数:fact(n)计算n的阶乘;mypow(x,n)计算x的n次幂(即xn),两个函数的返回值类型是double。

      x - x2/2! + x3/3! + ... + (-1)n-1xn/n!

 

×输出保留4位小数。

 

输入 input

x n

输出 output

数列和

样例输入 sample input

2.0 3

样例输出 sample output

1.3333

package compete;

//计算机中的数学

import java.text.DecimalFormat;

import java.util.Scanner;

 

public class Calculate {

 

public static void main(String[] args) {

// TODO Auto-generated method stub

DecimalFormat a=new DecimalFormat("0.0000");   //控制

Scanner scanner=new Scanner(System.in);

double x=scanner.nextDouble();

int n=scanner.nextInt();

double sum=0.0;

for(int i=1;i<=n;i++)

{

sum=sum+(mypow(x,i)*mypow(-1.0,i-1))/fact(i);

}

//System.out.print(fact(3));

//System.out.println(mypow(2,3));

      System.out.println(a.format(sum));

 

}

public static double fact(double n)

{

if(n<0) System.out.println("Data is error");

if(n==0||n==1) return 1;

else {

n=(n*fact(n-1));

return n;

}

}

public static double mypow(double x,double n){

if(n==0) {

return 1;

}

else if(n==1)  {

return x;

}

else return mypow(x,n-1)*x;

}

}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值