您的位置:首页 > 其它

关于数据的溢出的影响。程序功能实现:1!+2!+...+30!的求和

2015-05-07 15:48 375 查看
之前的公式

public class ArraySum

{
public static void main(String[]args){

sum(30);
System.out.print(sum(30));
}
public static int fun(int x){    //实现阶乘
if(x==1){
 return 1;
}else{
return x*fun(x-1);
}

}
public static int sum(int x){   //实现累加
int sum=0;
if(x==1){
return 1;
}else {
sum=fun(x)+sum(x-1);
return sum;
}
}

}

发现运行的程序结果得到一个负数:所以应该是出现了数据溢出,这个时候采用

public class ArraySum

{
public static void main(String[]args){

sum(30);
System.out.print(sum(30));
}
public static long fun(long x){    //实现阶乘
if(x==1){
 return 1;
}else{
return x*fun(x-1);
}

}
public static long sum(long
x){   //实现累加
long sum=0;
if(x==1){
return 1;
}else {
sum=fun(x)+sum(x-1);
return sum;
}
}

}

得到了最后想要的结果
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐