gpt4 book ai didi

计算组合函数的Java程序

转载 作者:太空宇宙 更新时间:2023-11-04 07:19:25 25 4
gpt4 key购买 nike

对于我的编程课,我必须编写一个程序,通过使用处理输入/输出的 main 方法、计算阶乘的方法和计算组合函数的方法来计算组合函数 C(n,k) = n!/(k!*(n-k)!)。这是我的代码:

import java.util.Scanner;
public class Combinations {

public static void factorials (int set, int objects) {
Scanner keyboard = new Scanner(System.in);
int n = set;
int k = objects;
int c = (n-k);
int factorial1 = 1;
int factorial2 = 1;
int factorial3 = 1;
while (n > 0) {
factorial1 = factorial1 + s;
n = n++;
}//while loop
while (k > 0) {
factorial2 = factorial2 + o;
k = k++;
}//while loop
while (c > 0) {
factorial3 = factorial3 + c;
c = c++;
}//while loop
System.out.println(Combinations(factorial1,factorial2,factorial3));
}//method factorials
public static int Combinations (int set, int objects, int x){
int n = set;
int k = objects;
int c = x;
int combination;
combination = n/(k*c);
return combination;
}//method Combinations
public static void main(String[] args) {
Scanner keyboard = new Scanner(System.in);
System.out.println("Enter the number of integers in a set: ");
int n = keyboard.nextInt();
System.out.println("Enter the number of objects to be chosen from the set: ");
int k = keyboard.nextInt();
System.out.println(factorials(n,k));
}//method main

}//class

我的问题是,我收到了 System.out.println(factorials(s,o)); 的错误消息 - “PrintStream 类型中的方法 println(boolean) 不适用于参数 (void)”。我不知道为什么这么说。帮助?

最佳答案

在您的代码中,

public static void factorials(int set, int objects)
{
}

返回void。你不能使用 void 方法System.out.println(阶乘(s, o));

尝试将代码更改为

public static int factorials(int set, int objects)
{
}

另一种无需调用方法即可计算组合的方法,

        int index, numberOfItems, itemsToBeSelected, combinations;
int factorial, temp, result;

Scanner scanner = new Scanner(System.in);
System.out.println("Number Of Items (n) : ");
numberOfItems = scanner.nextInt();

System.out.println("Items to be selected (r): ");
itemsToBeSelected = scanner.nextInt();


for (index = 1, factorial = 1; index <= numberOfItems; index++) /* Calculate (numberOfItems) -> n! */
{
factorial = factorial * index;
}

for (index = 1, temp = 1; index <= itemsToBeSelected; index++) /* Calculate (itemsToBeSelected) -> r! */
{
temp = temp * index;
}

for (index = 1, result = 1; index <= (numberOfItems - itemsToBeSelected); index++) /* Calculate (numberOfItems - itemsToBeSelected) -> (n-r)!*/
{
result = result * index;
}

combinations = factorial / (temp * result);
System.out.println("Combinations : " + numberOfItems + "C" + itemsToBeSelected + " : " + combinations);

输出:

Number Of Items (n) : 
8
Items to be selected (r):
3
Combinations : 8C3 : 56

关于计算组合函数的Java程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19532553/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com