用while语句计算1+1/2!+1/3!+1/4! … 的前20项和,代码实例
时间: 2023-11-18 15:06:06 浏览: 37
以下是使用while循环计算1+1/2!+1/3!+1/4! … 的前20项和的代码实例,使用BigDecimal类实现精确计算:
```java
import java.math.BigDecimal;
public class Example {
public static void main(String[] args) {
BigDecimal sum = new BigDecimal(1.0); // 和
BigDecimal factorial = new BigDecimal(1.0); // 阶乘项的计算结果
int i = 2; // 循环增量
while (i <= 20) {
factorial = factorial.multiply(new BigDecimal(i - 1)); // 计算阶乘项
sum = sum.add(new BigDecimal(1.0).divide(factorial, 20, BigDecimal.ROUND_HALF_UP)); // 累加各项阶乘的和
++i; // i加1
}
System.out.println("1+1/2!+1/3!+1/4!...的前20项和为:\n" + sum); // 输出计算结果
}
}
```
相关问题
选择结构和循环结构程序设计,编写程序完成实例(代码加注释),包含、for语句、while语句及do while语句
好的,我可以回答你关于编程的问题。以下是一个使用选择结构和循环结构的实例(含代码注释):
```
#include <stdio.h>
int main() {
int i;
// 选择结构 - if语句
printf("Please enter a number: ");
scanf("%d", &i);
if(i < 0) {
printf("The number is negative.\n"); // 如果 i 小于 0,则输出负数
}
else {
printf("The number is not negative.\n"); // 如果 i 大于等于 0,则输出非负数
}
// 循环结构 - for语句
printf("Counting from 1 to 10:\n");
for(i = 1; i <= 10; i++) {
printf("%d ", i); // 输出从 1 到 10 的数字
}
printf("\n");
// 循环结构 - while语句
i = 1; // 重置 i 的值
printf("Counting from 1 to 10 again:\n");
while(i <= 10) {
printf("%d ", i); // 输出从 1 到 10 的数字
i++; // i 自增
}
printf("\n");
// 循环结构 - do while语句
i = 1; // 重置 i 的值
printf("Counting from 1 to 10 one more time:\n");
do {
printf("%d ", i); // 输出从 1 到 10 的数字
i++; // i 自增
} while(i <= 10);
printf("\n");
return 0;
}
```
希望这个实例对你有帮助!请问还有其他问题吗?
选择结构和循环结构程序设计,编写程序完成实例(代码加注释),for语句、while语句及do while语句
好的,关于程序设计的问题,我可以回答。以下是实例代码及注释:
// 使用 for 循环输出 1~10 的偶数
for(int i=1; i<=10; i++){
if(i%2 == 0){
cout << i << " ";
}
}
// 使用 while 循环输出 1~10 的奇数
int j = 1;
while(j<=10){
if(j%2 != 0){
cout << j << " ";
}
j++;
}
// 使用 do while 循环求 1~10 的和
int k = 1, sum = 0;
do{
sum += k;
k++;
}while(k<=10);
cout << "1~10的和为:" << sum << endl;
希望这个程序代码能对您有所帮助!