Java求多项式exp(x)=1+x+ 2!/ x2 + 3!/x3 +……+ i!/xi (|i!/xi|≤10^-10)

这篇博客介绍了一个简单的Java编程题目,要求计算exp(x)的和,其中x的幂次从0开始,每一项为i! / x^i,直到绝对值小于10^-10。博主分享了实现算法的思路,包括使用循环和动态更新当前项,并讨论了Java中除法和结果保留小数的处理方法。最后给出了源代码实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近开始为CCF做准备,所以打算把看的题都写下来,肯定都是站在巨人的肩膀上,如有重复和不足,请大家多多指教。谢谢!

算法题目很简单:exp(x)=1+x+ 2!/ x2 + 3!/x3 +……+ i!/xi   (|i!/xi|≤10^-10)  保留四位小数

分析:用s代表和,i代表当前x的幂次,t代表当前当前项

 1、初始值  s=1 i=0 t=1

 2、循环结束的条件 Math.abs(t) > Math.pow(10,-10)  (Java语言中的Math函数,这个也是临时查的)

 3、循环规律  t(i)=x^i/i!=x^(i-1)/(i-1)! * (x/i) = t(i-1) * (x/i) 所以   i = i+1; t = t * x/i ; s = s + t;  (表达式看着很蛋疼,用笔在纸上写出了会比较好)

 4、对于编程语言来说,整数5/2=2,所以在做除法的时候要注意,不然最后是没有小数部分的,我的处理方法是直接用double类型的变量来保存数据,但是对于结果对不对,我确实没法验证,若有大神指点,感激不尽!

 5、最后是小数的保留,格式很多的,一查就有了!

源代码如下:

import java.text.DecimalFormat;
import java.util.Scanner;
public class Main2{
static int i=0;//初始值
static double s=1.0;
static double t=1.0;
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
double x = in.nextDouble();
i = i+1;
t = t*(x/i);
s = s+t;
while(Math.abs(t) > Math.pow(10, -10)){
i = i+1;
t = t*(x/i);
s = s+t;
}
DecimalFormat df =new java.text.DecimalFormat("#.0000");
System.out.println(df.format(s));
}
}

一、选择题 1解方程x4-4x3+12x-9 = 0 的所有解( ) A. 1.0000, 3.0000, 1.7321, -1.7321 B. 1.0000, 3.0000, 1.7321i, -1.7321i C. 1.0000i, 3.0000i, 1.7321, -1.7321 D. -3.0000i, 3.0000i, 1.7321, -1.7321 2、运行如下程序后, 命令窗口显示的结果为( )。 A=[13,-56,78; 25,63,-735; 78,25,563; 1,0,-1]; y=max(max(A)) A. y=564 B. y=9 C. y=-735 D. y=563 3、下列MATLAB语句不正确的是( ) A. A=[1,2,3; 4 5 6; 7 8 0]; sum(A(:)) B. A=[1,2,3; 4 5 6; 7 8 0]; C=A>6 C. A=[1,2,3; 4,5,6; 7,8,0]; A(1,:).*A(:,3) D. A=[1,2,3; 4,5,6; 7,8,0]; A(1,:)*A(:,3) 二、程序题 4、y=sin(x),x从0到2π,取值间隔为0.02π,y的最大值、最小值、均值和标准差。 5、x=[1 2 3 4 5],y=[2 4 6 8 10],计算x的协方差、y的协方差、x与y的互协方差。 6、解以下线性方程组,要写出程序代码和运行结果。 2x1-3x2+x3+2x4 =8 x1+3x2+x4 =6 x1-x2+x3+8x4 =1 7x1+x2-2x3+2x4 =5 7、多项式x3-7x2+2x+40的根。 8、解在x=8时多项式(x-1)(x-2) (x-3)(x-4)的值。 9、计算多项式乘法(x2+2x+2)(x2+5x+4)10、计算多项式除法(3x3+13x2+6x+8)/(x+4)11、计算多项式4x^4-12x^3-14x^2+5x+9的微分和积分。 12、解方程组[2 9 0,3 4 11,2 2 6]x=[13,6,6] 13欠定方程组[2 4 7 4,9 3 5 6]x=[8,5]的最小范数解。 14、有一正弦衰减数据y=sin(x).*exp(-x/10),其中x=0:pi/5:4*pi,用三次样条法进行插值。 x=0:pi/5:4*pi; y=sin(x0).*exp(-x0/10); xi=0:pi/5:4*pi; yi=interp1(x,y,xi,spline)
最新发布
03-08
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值