首页 > 解决方案 > 如何编写一个扩展到负数的阶乘计算器?

问题描述

我正在尝试为试图计算的阶乘编写一个程序。如果 n 是自然数,那么答案是 n*(n-1) (n-2)....1 (-1) (-2)) (-3)...*(-10)

这是 C++ 代码,它不会超出打印 n 的范围。它可以在没有 if else 语句的情况下工作。

#include <iostream>
using namespace std;

int main() {
    int val=0, prod=1;
    std::cout<<"Enter the number"<<std::endl;
    std::cin>>val;
    std::cout<<"The number is "<<val<<std::endl;
    while(val>=-10)
    {
        prod=prod*val;
        if (val=1)
        {

            val=val-2;
        }
        else
        {
            val=val-1;
        }
    }
    std::cout<<prod<<std::endl;
    return 0;
}

标签: c++

解决方案


if (val=1)

应该

if (val==1)

=用于分配和==比较。

我希望你的编译器会警告你这个非常常见的错误。如果不是,你应该找出原因,如果是,你应该注意。

从长远来看,编译器警告将为您节省大量时间。


推荐阅读