gpt4 book ai didi

C++ 0 的阶乘

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

我正在编写一个程序来查找用户输入数字的阶乘。我的程序工作于,除了找到 0 的阶乘。要求是 0 的阶乘应该输出 1,但我想不出一种方法将此功能写入代码而不为输入 0 时创建特殊情况。这是我目前所拥有的

#include <iostream>
#include <cmath>
using namespace std;

int main() {

int startingNumber = 0;
double factorialize = NULL;

while(startingNumber != -1) {
cout << "Enter the numbr to factorial: ";
cin >> startingNumber;
factorialize = startingNumber;
for(int x=startingNumber-1;x>=1;x--) {
factorialize = factorialize*x;
}
cout << factorialize << endl;
factorialize = NULL;
}

return 0;
}

对于除 0 以外的所有情况,这会准确地输出阶乘。有没有一种不需要特殊情况的方法可以做到这一点?我想不,因为当我读到 0 的原因时!是1,它说它是这样定义的,换句话说,你无法推理出为什么它是1。就像x^0, 0! = 1 与为什么 2^2 是 4 或 2 的逻辑不同! = 2.

最佳答案

试试这个:

    factorialize = 1;
for(int x=2; x<=startingNumber;x++)
factorialize *= x;

关于C++ 0 的阶乘,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26368981/

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