我最近制作了一个具有45多种不同功能的多功能计算器。计算器的最新成员是排列和组合。排列工作正常,但当我尝试使用组合时,我收到此错误:
'int'对象不可调用
我向用户询问n
和r
的值,然后程序会为这两个数字吐出所有可能的组合。
def comb(num1, num2):
return (factorial(num1))/(factorial(num2)(factorial(num1 - num2)))
print("You chose combinations")
num1 = int(input("Enter the value of n: "))
num2 = int(input("Enter the value of r: "))
print("There are", str(comb(num1, num2)), "possible combinations.")
解决方案似乎非常简单,但我只是不知道它是什么。要么我是盲目的,解决方案就是盯着我,或者我不知道我在做什么。
答案 0 :(得分:1)
您错过了正确的乘法运算符:
int a2D[5][10];
你在分母中尝试做的是
typedef int A2D[ROW][COL];
A2D a2d = {0}; // Declares 2D array a2d and inits all elements to zero
func(n)是一个整数,你用括号中的内容跟着它。解析器认为你试图使用从 factorial 返回的值作为函数名,并给它一个参数(这是** factorial(num1 - num2)的返回值)。
答案 1 :(得分:0)
您意外地称为阶乘或其他
我刚刚为你清理了你的代码
def comb(num1, num2):
numer = factorial(num1);
denom = factorial(num2) * factorial(num1 - num2);
return numer/denom;
答案 2 :(得分:0)
这不起作用,因为Python不进行隐式乘法(即你不能做这样的事情:
4(factorial(5))
期望得到一个答案,因为Python不会这样做。)
您需要手动插入乘法符号:
factorial(num1) / (factorial(num2) * factorial(num1 - num2))
请注意,在我的回答中,我为你删除了一些括号,因为你不需要它们。