
方法和分析见下文:
分析
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本身。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)