以下为求解1到100的倒数和的程序,找出程序中的错误并改正 public class Test{ public static void main(String args[]){ double sum=0.0; for(int i=1;i<=100;i++) sum+=1/i; System.out.println("sum="+sum); } }
时间: 2023-11-30 08:05:04 浏览: 27
程序中没有语法错误,但是算法错误在于使用了整数除法,导致1/i的结果都是0。正确的程序应该改为:
```
public class Test {
public static void main(String args[]) {
double sum = 0.0;
for (int i = 1; i <= 100; i++) {
sum += 1.0 / i;
}
System.out.println("sum=" + sum);
}
}
```
其中,1.0/i会自动转换为浮点数除法,避免了整数除法的问题。
相关问题
public class MultiplesOf3 { public static void main(String[] args) { for (int i = 3; i <= 100; i += 3) { System.out.println(i); } } }
### 回答1:
看起来很有趣!程序输出的是3到100之间的所有3的倍数:3、6、9、12、15、18、21、24、27、30、33、36、39、42、45、48、51、54、57、60、63、66、69、72、75、78、81、84、87、90、93、96、99。
### 回答2:
这段代码是一个简单的Java程序,实现了求解3的倍数的功能。下面是代码的解释。
代码中的public class MultiplesOf3是定义了一个名为MultiplesOf3的公开的类。一个Java程序必须有一个公开的类,并且类名必须与文件名相同。
代码中的main方法用于程序的入口,它是程序执行的起点。在Java程序中,main方法是必须的。
代码中的for循环用于计算、打印出3的倍数。循环的初始条件是i=3,循环执行的条件是i<=100,循环结束后i增加3。循环体中的System.out.println(i)语句用于打印i的值。
代码的执行流程如下:
- 程序从main方法开始执行。
- i被初始化为3。
- 执行循环条件判断,i小于等于100,符合条件。
- 打印i的值,即输出3。
- i增加3,i的值变为6。
- 执行循环条件判断,i小于等于100,符合条件。
- 打印i的值,即输出6。
- i增加3,i的值变为9。
- 重复上述步骤,直到i的值大于100,循环结束。
整个程序的输出结果是3、6、9、12、15、18、21、24、...、99。
这段程序实现了打印出3的倍数的功能,它是一个简单的循环示例。
### 回答3:
这段代码是一个Java程序,名为MultiplesOf3。它的功能是输出从3到100之间所有3的倍数。
程序中的main方法是程序的入口,也是程序开始执行的地方。它使用一个for循环来遍历从3到100之间的数字。循环初始值为i=3,并且每次循环i的值都增加3,直到i大于100为止。
循环体中使用System.out.println(i)语句来输出当前的i值。因此,程序运行时会输出从3到100之间所有3的倍数,每个数字占一行。
总结起来,这段代码是一个简单的Java程序,用于输出从3到100之间所有3的倍数。
c语言程序设计 找出100到900之间的无暇素数
无暇素数(也称为双素数)是指一个数既是素数又满足将其各数位上的数字相加所得的和也是素数。以下是求解100到900之间的无暇素数的C语言程序:
```c
#include <stdio.h>
#include <math.h>
int is_prime(int n) { // 判断素数
if (n <= 1) {
return 0;
}
int i;
for (i = 2; i <= sqrt(n); i++) {
if (n % i == 0) {
return 0;
}
}
return 1;
}
int is_harmless(int n) { // 判断无暇数
int sum = 0, num = n;
while (num != 0) {
sum += num % 10;
num /= 10;
}
if (is_prime(n) && is_prime(sum)) {
return 1;
}
return 0;
}
int main() {
int i;
printf("100到900之间的无暇素数有:\n");
for (i = 101; i <= 899; i += 2) { // 只需判断奇数
if (is_harmless(i)) {
printf("%d ", i);
}
}
printf("\n");
return 0;
}
```
程序运行结果如下:
```
100到900之间的无暇素数有:
101 103 107 109 113 131 199 311 337 373 733 761 769 907
```