JAVA编程:计算1!+2!+3!+…+n!。 要求:(1)n值由键盘输入,n的值不超过10 (2)处理可能发生的异常。

利用for循环嵌套编写程序,计算1!+2!+3!+……+n!,要求n的值要由键盘输入 一定要用嵌套~

在win-TC环境中,你所问的算法编译内容如下:
#include "stdio.h"
#include "conio.h"
long cheng(int n)
{
long M;
int t;
if(n==0)
M=0;
else if(n==1)
M=1;
else M=1;
for(t=1;t<=n;t++)
{
M*=t;
}
return(M);
}
main()
{
long sum=0;
int i,n;

printf("Input your number for calculating
");
scanf("%d",&n);
for(i=0;i<=n;i++)
{
sum+=cheng(i);
}
printf("the result=%ld",sum);
getch();
}
我刚给你写的,付编译图一张。有图有真相,我输入的n是10,结果是4037913.
感谢对我回答评论的那个兄台,我之前的答案给看错了。看成1+2+3+……+n=?
请注意我的数据类型,sum和M都是长整型的,还有注意第二个printf中式%ld。如果数据类型不对的话就搞不到大数字。请楼主一定深思。
这下真的有图有真相了。
还有我利用了函数的嵌套。

#include"iostream.h"
#include"windows.h"
void main()
{
int A(int n);//递归求阶乘
cout<<"请输入N值:";
int i,N,sum=0;
cin>>N;
if(N>0)
{
for(i=N;i>=1;i--)
{
sum+=A(i);
}
cout<<"结果:"<<sum<<endl;
}
else
cout<<"N必须为正整数!
";
system("pause");
}
int A(int n)
{
if(n>1)
return A(n-1)*n;
if(n==1)
return 1;
}

//搞定
import java.util.Scanner;

public class Test {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入不超过10的正整数:");
while(true){
int n = sc.nextInt();
if(n<1||n>10){
System.out.println("输入不合法,请输入不超过10的正整数:");
}else{
int s = add(n);
System.out.println("1到"+n+"的阶乘的和为:"+s);
break;
}
}
}
//计算1~n的阶乘的和
public static int add(int n){
int sum = 0;
while(n>0){
sum= sum+fac(n);
n--;
}
return sum;
}
//计算n的阶乘
public static int fac(int num){
if(num==1){
return 1;
}else{
return num*fac(num-1);
}
}
}

 //计算n的阶乘还可以用循环可以写成这样:

public static int test(int num){

    int result  =  1;

    while(num>0){

        result = result*num;

        num--;

    }

    return result;

}

那个好懂用哪个



递归调用求10以下的阶乘,给你个能直接运行的例子:

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class digui {
public int sum = 0;
public String shuruStr;
public int shuruNum;

public void init() {
try {
do {
System.out.println("---请输入0-10之内的整数!---\t");
BufferedReader strin = new BufferedReader(new InputStreamReader(System.in));
shuruStr = strin.readLine();
shuruNum = Integer.parseInt(shuruStr);
} while (shuruNum > 10 || shuruNum <= 0 );
System.out.println("输入的数是:" + shuruNum);
diguiDy(shuruNum);
System.out.println("递归相乘的总和为:"+ sum);
} catch (IOException e) {
e.printStackTrace();
}
}

public int diguiDy(int var) {
if (var == 1) {
return sum += 1;
}
sum += (var - 1) * var;
diguiDy(var -1);
return sum;
}

public static void main(String[] args) {
new digui().init();
}
}

如果对回答满意,请点【采纳答案】,如果还有问题,请点【追问】

希望我的回答对您有所帮助,希望能采纳。

import java.util.*;
public class Text{
public static void main(String args[])
{
Scanner in = new Scanner(System.in);
int i = 1;
int j = 1;
int z = 0;
System.out.println("请输入一个数:");
int end = in.nextInt();
for(;i <= end;i ++)
{
j *= i;
z += j;
}
System.out.print("1!+"+"…+"+end+"!");
System.out.println("= "+z);
}
}
// int
// sum=0;

java编程,怎么算1!+2!+3!+4!+……+n!
答:public class Test004 {public static void main(String[] args) {System.out.println(func2(4));}//计算阶乘private static long func1(int n) {if(n <= 0) {System.out.println("请输入正整数!");return -1;}else if(n == 1){return 1;}else {return n * func1(n-1);}}//...

java用for循环计算1! 2! … 100!
答:long getFac(int n){if(n < 0){return -1;}if(n == 0){return 1;}long sum = 1;for(int i=1;i<=n;i++){sum *= i;}return sum;}

JAVA编程:计算1!+2!+3!+…+n!。 要求:(1)n值由键盘输入,n的值不超过...
答://搞定import java.util.Scanner;public class Test {public static void main(String[] args) {Scanner sc = new Scanner(System.in);System.out.println("请输入不超过10的正整数:");while(true){int n = sc.nextInt();if(n<1||n>10){System.out.println("输入不合法,请输入不超过10...

java 编程 输出 1!,2!,3!,4!...20!的值
答:sum应该就是1!+2!+3!+...+20!的和;int i,sum2=0;for(i=1;i<=n;i++){ sum2+=i;} sum2就是n的阶层

用JAVA语言编程 求1!+2!+3!+4!+5!+6!+7!+8!+9!+10!。(要求:使用while...
答:1!:表示1的阶乘;2!表示2的阶乘,就是1*2 依次类推就行。1!+2!+3!+4!+5!+6!+7!+8!+9!+10!就是求和嘛,这个直接用循环求和就行了。

java 编程:计算1!+2!+3!+…..+10!,其中阶乘的计算用方法实现。
答:public void qiuhe() { //下面三行可以根据不同需求改造成自己需要的,然后计算。String str = "1!+2!+3!+4!+5!+6!+7!+8!+9!+10!";str=str.replace("+","");String[] array=str.split("!");long sum= 0;for (int i = 0; i <array.length ; i++) { sum += ...

一道JAVA编程题:计算1!+2!+…+n!的值
答:import java.io.*; public class haha { public static void main(String[] args) throws IOException { int num; String str; BufferedReader buf; buf=new BufferedReader(new InputStreamReader(System.in)); System.out.print("Input an ingeger:"); str=buf.readLine(); num=Integer....

用java计算1!+2!+……+n!的程序
答:Long sum1=0;Long sum2=0;for(int i=1;i<=n;i++){ //n是你运算到几的数值 for(int j=i;j>=1;j--){ sum2=sum2+j;} sum1+=sum2;} System.out.println(sum);

java编程,算1!+2!+3!+4!+5!+……+n!
答:import java.math.BigInteger;import java.util.*;public class Marik{ public static void main(String[] args) { Scanner scan = new Scanner(System.in); System.out.println("输入n的值"); int n = scan.nextInt(); scan.close(); BigInteger sum = BigInteger.ZERO;...

编写一个JAVA程序,计算1!+2!+3!+...+20!之和并在屏幕上输出
答:例如上面程序计算1-21的阶乘和会是-927073767 导致错误 程序如下修改以后 答案就正确了53652269665821260313 非常感谢老大提醒~~~public class T { public static void main(String[] args) { test2(20);} public static void test2(int k) { BigDecimal total = new BigDecimal("0");BigDecimal ...

IT评价网,数码产品家用电器电子设备等点评来自于网友使用感受交流,不对其内容作任何保证

联系反馈
Copyright© IT评价网