(用TestPad软件做) java语言编写,y=x-x³/3!+x^5/5!-x^7/7!+x

(用TestPad软件做)java语言编写,y=x-x³/3!+x^5/5!-x^7/7!+x^9/9!-……到第n项,n和x的值由键盘输入{设计思路哦}... (用TestPad软件做) java语言编写,y=x-x³/3!+x^5/5!-x^7/7!+x^9/9!-……到第n项,n和x的值由键盘输入 {设计思路哦} 展开
 我来答
匿名用户
2016-01-06
展开全部
//以下代码,我重新调了一下,并加了注释,calc方法的计算跟之前的不一样,之前的那个可能我误解了题,按现在这个来吧,你看看注释还有哪不懂的,还有,之前一个网友说的,要用大数据类型,这是没错的,我原本想用bigInteger的,可是对那不熟,就不改了,你用现在这代码的话,那个n和x的值不知道能够允许输入到多大,如果你有耐心的话,可以测测这2个值的最大允许输入值
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
Scanner s = new Scanner(System.in);
System.out.print("请输入n值:");
int n = s.nextInt();
System.out.print("请输入x值:");
int x = s.nextInt();
double result = calc(n, x);
System.err.println("\n结果:"+result);
}

/**
 * y=x-x^³/3!+x^5/5!-x^7/7!+x^9/9!-……到第n项 </br>
 * 本题的思路:首先从题目可知道单项值的计算公式-->x的(n*2-1)次方再除以(n*2-1)的阶乘 </br>
 * 本题的最终结果是,奇数项的值总和减去所有偶数项的值,
 * 按题目的表述就是,第一项的值减去第二项值加上第三项值减去第四项值加上第五项值减去第六项值....
 * 
 * @param n
 * @param x
 */
public static double calc(int n, int x) {
double total = x;// 定义变量用于累计计算每一项值的和,这里赋值x,表示第一项的值
int tmp;
// 按n值,遍历每一项的值并统计,从第二项开始
for (int i = 2; i <= n; i = i + 1) {
// 第i项的值的计算和累计
tmp = i * 2 - 1;//
//方法Math.pow(x, tmp)说明:该方法表示计算x的tmp次方,并返回一个double类型的结果
if (i % 2 == 0) {
// 满足if条件,则表示偶数项,总结果减去该项值
total -= Math.pow(x, tmp) / calcFactorial(tmp);
} else {
// 表示奇数项,总结果加上该项值
total += Math.pow(x, tmp) / calcFactorial(tmp);
}
}
return total;//返回总的计算结果
}


/**
 * 求指定数的阶乘,比如,5的阶乘(5!),结果= 1X2X3X4X5
 * 
 * @param num
 * @return
 */
public static int calcFactorial(int num) {
int total = 1;
for (int i = 1; i <= num; i++) {
total *= i;// 乘等于符号,相当于表达式:total = total*i
}
return total;
}
}
更多追问追答
追问
哥哥~你运行了吗?能给我截个运行结果图吗?
追答
运行过,可以的,刚刚才把电脑关了,你那边有开的话,就直接在cmd命令窗口运行吧
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式