Java入门者遇到一个小的程序问题
求1!+2!+...+60!的值。public class TestDemo {
public static void main(String args[]){
double sum = 0.0;
for( int x = 1 ; x <= 60 ; x ++){
double temp = 1.0;
for(int y = 1 ; y <= x ; y ++ ){
temp *= y;
}
sum += temp;
}
System.out.println("计算结果:" + sum );
}
)
没有使用eclipse 现在用的DOS去执行的 但是问题显示需要class inte易做图ce enum 我的文件名和类名是一样的 --------------------编程问答-------------------- 你确定大小写都一致么????? --------------------编程问答--------------------
public class TestDemo
{
public static void main(String[] args)
{
long sum = 0;
for (int i = 1; i < 61; i++)
{
sum+=factorial(i);
}
System.out.println(sum);
}
// 阶乘,求num的阶乘结果
public static long factorial(int num)
{
if (1 == num)
{
return 1;
}
else
{
return num * factorial(num - 1);
}
}
}
操蛋的题目,刚开始我还整个返回类型int,雷死我了结果这么大都超int上限了
7130771808709376537 --------------------编程问答-------------------- 哥们,你的代码少个}最后一个怎么是)啊
{}不成对,是不是?
public class TestDemo
{
public static void main(String args[])
{
double sum = 0.0;
for (int x = 1; x <= 60; x++)
{
double temp = 1.0;
for (int y = 1; y <= x; y++)
{
temp *= y;
}
sum += temp;
}
System.out.println("计算结果:" + sum);
}
}
不过接到我也有问题了,咱俩出来的结果不一样啊,纠结的很啊double和long精度错这么远?
计算结果:8.46206204346806E81
--------------------编程问答-------------------- String args[]粗心啊 --------------------编程问答-------------------- 最后是“{”不是“(”。 --------------------编程问答-------------------- 我是打酱油路过的,觉得你的算法不够优化啊?
double sum = 0.0;
double temp = 1.0;
for(int i = 1 ; i <= 60 ; i++){
temp *= i;
sum += temp;
}
多一重循环带来的运算量增加是乘法级的 --------------------编程问答-------------------- +1
补充:Java , Java SE