看起来你的代码有一个小错误,是在输出语句中没有指定要输出的变量值。在System.out.printf("e=" , e)这一行中,应该使用printf()方法指定输出格式,并在格式字符串中使用占位符(%)将变量e的值插入到输出语句中。修改后的代码如下所示:
import java.util.*
public class Main {
public static void main(String[] args) {
int e = 1, j = 1
int i
for (i = 1i <100i++) {
j *= i
e += 1 / j
}
System.out.printf("e=%.2f", (double)e)
}
}
注意,在输出语句中使用了%.2f这个格式字符串,表示输出一个浮点数并保留两位小数。同时,由于e是int类型的变量,需要将其强制转换为double类型,以便在输出时进行计算。希望这个修正能够帮到你!
(以上由“知否AI问答”回复,可以免费直接访问体验:网页链接)
package epublic class Main {public static void main(String[] args) {
double e=1,sum=1//e的初值为1,sum用来存放n!
int i=1
while(sum<Math.pow(10, 1000000)){ //当sum大于10的1000000次方的时候我们认为已近似的
sum=i*sum相等了,如果这个数设置的更大就会更加接近e
e=1.0/sum+e
i++
}
System.out.println("e="+e)
}} 程序是经验证的,可以在编译环境上运行!绝对没问题~
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)