求a!+b!+c!的值,即求出a阶乘、b阶乘、c阶乘的和值,java求解

144
提问者
2023-03-15 19:29 悬赏 0财富值 阅读 469回答 2

staticint阶乘(inti){intm=1;for(;i>0;i--){m*=i;}returnm;}追问能写个完整的代码吗拜托了追答publicclas

默认分类
登录 后发表回答
1楼 · 2023-03-15 20:23.采纳回答

import java.util.Scanner;
public class test {
//定义数字a,b,c的数组
private static int num[] = new int[3];
//定义阶乘和
private static long sum = 0;
//使用递归方法求阶乘
private static long fac(int num){
if (num == 1) {
return 1;
}else {
return num * fac(num - 1);
}
}
public static void main(String[] args) {
//循环给数组赋值
for (int i = 0; i < num.length; i++) {
/**提示输入a,b,c的值,实际上数字a对应的是数组下标为0的值,也就是num[0],
数字b对应的是数组下标为1的值,也就是num[1],数字c对应的是数组下标为2的值,
也就是num[2]
*/
if (i == 0) {
System.out.print("请输入数字a的值:");
}else if (i == 1) {
System.out.print("请输入数字b的值:");
}else {
System.out.print("请输入数字c的值:");
}
//将值循环输入数组当中
num[i] = new Scanner(System.in).nextInt();
//当输入的值小于1的时候提示重新输入
while (num[i] < 1) {
System.out.println("输入的数字必须大于等于1,请重新输入!");
System.out.println(" ");
if (i == 0) {
System.out.print("请输入数字a的值:");
}else if (i == 1) {
System.out.print("请输入数字b的值:");
}else {
System.out.print("请输入数字c的值:");
}
num[i] = new Scanner(System.in).nextInt();
}
//求出输入的a,b,c这3个数阶乘的和
sum+=fac(num[i]);
}
//输出结果
System.out.println("a! + b! + c! = "+sum);
}
}

不好意思,是要求和呀。y是x进行n次方后的结果

publicstaticintfac(intx,intn){
inty=1;
for(inti=0;i<n;i++){
y=y*x;
}
returny;
}

publicstaticvoidmain(Stringargs[]){
inta=2,b=3,c=4;
intsum=fac(a,2)+fac(b,2)+fac(c,2);
System.out.println(sum);
}
}
追问
能重新修改一下吗

2楼-- · 2023-03-15 20:12

staticint阶乘(inti)
{
intm=1;
for(;i>0;i--)
{
m*=i;
}
returnm;
}
追问
能写个完整的代码吗
拜托了
追答
publicclassMain
{
publicstaticvoidmain(String[]args)
{
inta=1,b=2,c=3;
System.out.println(阶乘(a)+阶乘(b)+阶乘(c));
}
staticint阶乘(inti)
{
intm=1;
for(;i>0;i--)
{
m*=i;
}
returnm;
}
}