c++ - 如何编写一个扩展到负数的阶乘计算器?
问题描述
我正在尝试为试图计算的阶乘编写一个程序。如果 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;
}
解决方案
if (val=1)
应该
if (val==1)
=
用于分配和==
比较。
我希望你的编译器会警告你这个非常常见的错误。如果不是,你应该找出原因,如果是,你应该注意。
从长远来看,编译器警告将为您节省大量时间。
推荐阅读
- java - 从 twitch 启动 modpack 时,旧的 Minecraft 启动器无法正常工作
- windows - 如何为 GitHub Actions 的 nt authority\network 服务帐户添加权限?
- amazon-web-services - 是否有 api 来获取 aws 云帐户所有者信息?
- node.js - 如何对 webhook 发送的消息做出反应?
- python - 如何处理来自基于 django 的物联网项目的大量数据
- php - 如何将丢失的时间从另一个用 PHP 格式化(H:i:S)的时间变为微秒?
- android - 通过 MainActivity 中的函数启动 Fragment
- testing - 功能测试中未调用 Laravel 中间件
- java - 在 Java 中使用 C++ 模板框架
- javascript - 在 JavaScript 中获取对象的引用时可以解构对象吗?