从一的阶乘加到二十的阶乘的和是多少?
#include<stdio.h>voidmain(){inti,n,sum;n=1;sum=0;for(i=1;i<=20;i++){n=n*i;sum=sum+n;}...
#include<stdio.h>
void main()
{
int i,n,sum;
n=1;sum=0;
for(i=1;i<=20;i++)
{n=n*i;
sum=sum+n;
}
printf("sum=%d/n",sum);
}
为什么这样算出来的答案不对?程序错在哪里呢? 展开
void main()
{
int i,n,sum;
n=1;sum=0;
for(i=1;i<=20;i++)
{n=n*i;
sum=sum+n;
}
printf("sum=%d/n",sum);
}
为什么这样算出来的答案不对?程序错在哪里呢? 展开
14个回答
展开全部
答案:2561327494111820313
Java代码:有可能数据溢出
import java.util.Scanner;
public class XiTi461 {
public static void main(String[] args) {
Scanner sr = new Scanner(System.in);
System.out.print("想计算 1!+······+?!:");
int x = sr.nextInt();
long sum = jch(x);
System.out.println("1!+······+" + x + "!的结果是:" + sum);
sr.close();
}
public static long jch(int a) {
long temp = 0;
long jc = 1;
for (int i = 1; i <= a; i++) {
for (int j = 1; j <= i; j++)
jc *= j;
temp += jc;
jc = 1;
}
return temp;
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
Java语言写的 结果是2561327494111820313
代码是:
public class 阶乘 {
public static void main(String[] args) {
// TODO 自动生成的方法存根
long sum=0;
for(int i=1;i<=20;i++) {
sum+=jiecheng(i);
}
System.out.println(sum);
}
public static long jiecheng(int n) {
long sum=1;
for(int i=1;i<=n;i++) {
sum=sum*i;
}
return sum;
}
}
代码是:
public class 阶乘 {
public static void main(String[] args) {
// TODO 自动生成的方法存根
long sum=0;
for(int i=1;i<=20;i++) {
sum+=jiecheng(i);
}
System.out.println(sum);
}
public static long jiecheng(int n) {
long sum=1;
for(int i=1;i<=n;i++) {
sum=sum*i;
}
return sum;
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2014-03-21
展开全部
20的阶乘已经远远超过整数的表示范围。
追问
那怎么办呢?
追答
#include
void main()
{
double i,n,sum;
n=1;sum=0;
for(i=1;i<=20;i++)
{n=n*i;
sum=sum+n;
}
printf("sum=%.lf\n",sum);
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询