Java 编写一个方法,求一个数的阶乘。 n!=1×2×3×...×n,比如3!=1*2*3=6?

Java 编写一个方法,求一个数的阶乘。 n!=1×2×3×...×n,比如3!=1*2*3=6?,第1张

方法和分析见下文:

分析

1、确定基本要求,应作为方法的限定条件或特殊情况处理

(1)规定:0!=1

(2)规定:n!中n非负

2、确定逻辑:

阶乘是比较适合递归的思路,因为n!=n(n-1)!,直到求解1!作为结束

代码(因为不太熟悉java,可能还需要题主进行微调)

long Factorials(int n)

{

if(n<0) return -1;//主要为了表示错误,题主可以自定义

  if(n==1||n==0) return 1;//0!是特殊约定,1!是作为递归的结束

  else return nFactorials(n-1);//进行递归,求解阶乘结果

}

按照你的要求编写的求阶乘的Java程序如下 \x0d\import javautilScanner;\x0d\public class DDD {\x0d\public static void main(String[] args) {\x0d\Systemoutprint("请输入一个正整数(1~10)");\x0d\Scanner sc=new Scanner(Systemin);\x0d\int n=scnextInt();\x0d\if(n10){\x0d\Systemoutprintln("无效数据!");\x0d\return;\x0d\}\x0d\Systemoutprint(n+"!=");\x0d\int result=1;\x0d\for(int i=1;i回答于 2022-11-16

无语
public class jjjj {
int pp(int n)
{
if(n<2)
return 1n;
else
return npp(n-1);
}
public static void main(String args[])
{
jjjj b=new jjjj();
int d=bpp(5);
Systemoutprint(d);
}
}
阶乘就是利用递归啊。
整个程序的核心就是int pp(int n)
{
if(n<2)
return 1n;
else
return npp(n-1);
}
这一段, 如果n大于2,返回npp(n-1)的意思,就是,任何一个N的阶乘等于n比n小1的数的阶乘,打个比方,比如5的阶乘等于5(4的阶乘),4的阶乘等于4(3的阶乘),而1的阶乘,等于1本身。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/10430638.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-08
下一篇2023-05-08

发表评论

登录后才能评论

评论列表(0条)

    保存