利用do-while语句计算1+1/2+1/4+…+1/50。
时间: 2023-05-01 11:06:50 浏览: 217
使用do-while语句计算1+1/2+1/4+...+1/50可以如下实现:
float sum = 0.0; //初始化总和为0
float num = 1.0; //初始化分母为1
do {
sum += num; //将当前分数累加到总和中
num /= 2; //将分母除以2
} while(num >= 1.0/50); //当分母小于等于1/50时停止循环
最终的结果保存在变量sum中。
相关问题
、分别用+while+语句、do-while+语句、for+语句编写程序,计算+e≈1+1/1!+1/2!+...+1/n!
以下是三种不同的语句实现计算e的程序:
1. while语句实现
```java
int n = 1;
double sum = 1, item = 1;
while (true) {
item = item / n;
sum += item;
n++;
if (item < 1e-6) {
break;
}
}
System.out.println("使用while循环计算的e=" + sum);
```
2. do-while语句实现
```java
int n = 1;
double sum = 1, item = 1;
do {
item = item / n;
sum += item;
n++;
} while (item >= 1e-6);
System.out.println("使用do-while循环计算的e=" + sum);
```
3. for语句实现
```java
int n = 1;
double sum = 1, item = 1;
for (int i = 1; item >= 1e-6; i++) {
item = item / i; sum += item;
n = i;
}
System.out.println("使用for循环计算的e=" + sum);
```
分别用while和do-while语句做如下练习,并注意两者的差异。 (1) 计算1/1+1/2+…+1/50 (2) 计算12+22+32+…+102的值
这是一道很好的编程练习题目。以下是用while和do-while分别实现的代码,您可以参考。
用while语句计算1/1 1/2 ... 1/50的值:
```
float sum = 0.0, i = 1.0;
while (i <= 50.0) {
sum += 1.0 / i;
i++;
}
printf("1/1 + 1/2 + ... + 1/50 = %f", sum);
```
用do-while语句计算1/1 1/2 ... 1/50的值:
```
float sum = 0.0, i = 1.0;
do {
sum += 1.0 / i;
i++;
} while (i <= 50.0);
printf("1/1 + 1/2 + ... + 1/50 = %f", sum);
```
关于两者的差异,主要是在于循环条件的判断时机不同。while循环在执行语句前就会判断循环条件是否为真,如果为假就不会执行循环体;而do-while循环则是先执行一遍循环体,再在执行完循环体后才判断循环条件是否为真,如果为假,则不再执行循环体。因此,do-while循环至少会执行一次循环体,而while循环不一定会执行循环体。
阅读全文