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

2022-11-27 07:01发布

import java.util.Scanner;public class test { //定义数字a,b,c的数组 private static int n
2条回答
1楼 · 2022-11-27 07:27.采纳回答

static int 阶乘(int i)
{
    int m = 1;
    for (; i > 0; i--)
    {
        m *= i;
    }
    return m;
}
追问
能写个完整的代码吗
拜托了
追答
public class Main
{
public static void main(String[] args)
{
int a=1,b=2,c=3;
System.out.println(阶乘(a)+阶乘(b)+阶乘(c));
}
static int 阶乘(int i)
{
    int m = 1;
    for (; i > 0; i--)
    {
        m *= i;
    }
    return m;
}
}

2楼-- · 2022-11-27 07:10
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次方后的结果

 public static int fac(int x, int n) {
  int y = 1;
  for (int i = 0; i < n; i++) {
   y = y * x;
  }
  return y;
 }

 public static void main(String args[]) {
  int a = 2, b = 3, c = 4;
  int sum=fac(a, 2)+fac(b, 2)+fac(c, 2);
  System.out.println(sum);
 }
}
追问
能重新修改一下吗