C#计算阶乘

2024-01-10

我有这段代码,它从用户那里获取输入并计算其阶乘和小于输入数字的阶乘,但我一直只获取第一个数字的阶乘,其余为 0。它应该是这样的:例如,如果输入为 5:

5! = 120

4! = 24

3! = 6

2! = 4

1! = 1

如何让循环遍历输入数字下面的所有数字?

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace multiple_factorials
{
    class Program
    {
        static void Main(string[] args)
        {
            int num, n;

            Console.WriteLine(".....................[Application 1].....................\n\n");
            Console.WriteLine("Please enter a number to get its factorial: ");
            num = Convert.ToInt32(Console.ReadLine());

            n = num; // Assign n to num

            while (num > 0)
            {
                for (int i = n - 1; i > 0; i--)
                {
                   n *= i;
                }
                Console.WriteLine("Factorial of {0}! = {1}\n", num, n);
                num--;
            }
        }
    }
}

你已经包括了System.Linq所以我提出了一个 LINQ 解决方案:

 int n = 5;

 // result == 120
 int result = Enumerable.Range(1, n).Aggregate(1, (p, item) => p * item);

然而,LINQ 是overkill这里,以及for loop更具可读性。要打印出所有行:

int num = 5;

String result = String.Join(Environment.NewLine,
  Enumerable.Range(1, num)
    .Reverse()
    .Select((index) =>
      String.Format("Factorial of {0}! = {1}\n",
                    index,
                    Enumerable.Range(1, index).Aggregate(1, (p, item) => p * item))));

Console.Write(result);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C#计算阶乘 的相关文章

  • 错误:表达式不可赋值三元运算符

    我有以下代码 MPLABX XC8 编译器给出此错误 错误 表达式不可分配 U1ERRIRbits RXFOIF uart1 oerr 1 uart1 oerr 0 这是相关代码部分 typedef union struct bool fe
  • 与 MinGW 的静态和动态/共享链接

    我想从一个简单的链接用法开始来解释我的问题 假设有一个图书馆z它可以编译为共享库 libz dll D libs z shared libz dll 或静态库 libz a D libs z static libz a 让我想要链接它 然后
  • copy_from_user() 错误:目标大小太小

    我正在为内核模块编写 ioctl 处理程序 我想从用户空间复制数据 当我编译禁用优化的代码时 O0 gflags 编译器返回以下错误 include linux thread info h 136 17 error call to bad
  • 使用管道在父级和子级之间传递整数值

    我对如何正确使用 pipeline 在两个进程之间传递整数值有点困惑 在我的程序中 我首先创建一个管道 然后分叉它 我假设我有 两个 管道 据我了解 这是我的任务 我的父母通过 for 循环检查某个操作的整数值 i 增加计数变量 并将值保存
  • 非模板函数中的尾随返回类型[重复]

    这个问题在这里已经有答案了 我见过有人使用以下语法来实现函数 auto get next gt int 代替 int get next 我理解两者 并且我知道尾随返回类型语法对于使用 decltype 的模板代码很有用 就我个人而言 我会避
  • 如何在 C++ 中为指针“this”赋值

    在函数中 如何分配this一个新的价值 您可以分配对象this点于 this XY 但你不能分配直接值this this XY Error Expression is not assignable
  • 获取列表框中视图中的项目

    我有一个 ListBox 其属性 VirtualizingStackPanel VirtualizationMode 设置为 回收 我正在绑定一个自定义集合 实现IList and IList
  • 如何在 C# 中以编程方式将行添加到 DataGrid?

    正如标题所述 我正在尝试使用 C 以编程方式将行添加到 DataGrid 但我似乎无法使其工作 这是我到目前为止所拥有的 I have a DataGrid declared as dg in the XAML foreach string
  • 在 C# 中解析 JS Date.toIsoString

    我需要将 JS 日期存储为 ISO 8601 日期 我目前正在从格式为 2019 06 22T00 00 00 000Z 的表单中获取日期 正如 JS 的 toIsoString 方法所期望的那样 当这个日期传递到我的 API 控制器时 我
  • 从图像创建半透明光标

    是否可以从图像创建光标并使其半透明 我目前正在拍摄自定义图像并覆盖鼠标光标图像 如果我可以将其设为半透明 那就太好了 但不是必需的 销售人员喜欢闪亮的 目前正在做这样的事情 Image cursorImage customImage Get
  • 注入包含接口的所有已注册实现的 Enumerable

    给出以下接口 public interface IMyProcessor void Process 我希望能够注册多个实现 并让我的 DI 容器将它们的可枚举注入到这样的类中 public class MyProcessorLibrary
  • 为什么连续抛出 2 个异常不会生成无法访问的代码警告?

    为什么以下代码行不会创建编译器警告 void Main throw new Exception throw new Exception 据我所知 编译器应该通知您无法到达第二个抛出异常 这显然是一个编译器错误 它是在 C 3 0 中引入的
  • C# 可以为控制台应用程序部分类“程序”类吗?

    我想知道是否可以将为任何控制台应用程序创建的默认 程序 类更改为部分类 我想这样做是因为我想要更好的组织 而不是将所有方法都放在按区域分类的 1 个文件中 对我来说 将某些方法类别放在单独的文件中会更有意义 我对分部类的理解是 它是多个文件
  • main.cpp 是必需的吗?

    我试图编译一个程序cmake 我最终删除了我的main cpp文件 我刚刚将其复合到另一个包含我的项目名称的文件中 即 我刚刚将主函数剪切并粘贴到该文件中 问题是我有一个main cpp未发现错误 不确定是否在C 一个名为main cpp是
  • 将 AutomationID 与 ListView 结合使用

    我正在尝试将 AutomationId 附加到列表视图中的项目 理想情况下 将项目名称绑定到显示的项目
  • 在一个解决方案中调用不同项目的方法

    1 个解决方案中有 3 个项目 我对第一个项目中的主文件进行的主要操作 但是我需要调用第三个项目中的方法并使用类 例如 第三个项目有 public DataClasses1DataContext base global WindowsFor
  • 查找数组中的多个索引

    假设我有一个像这样的数组 string fruits watermelon apple apple kiwi pear banana 是否有一个内置函数可以让我查询 apple 的所有索引 例如 fruits FindAllIndex ap
  • 如何防止 Lotus Notes 用户转发或复制通过 System.Net.Mail 发送的邮件?

    我想使用 SMTP 客户端 uiing microsft net 以 C 作为编程语言发送电子邮件 但是对于通过SMTP客户端发送的电子邮件 我们是否可以添加 禁止转发 或 禁止复制 等安全功能 我不希望电子邮件的收件人转发或复制电子邮件的
  • 跟踪白色背景中的白球(Python/OpenCV)

    我在 Python 3 中使用 OpenCV 来检测白场上的白 黑球 并给出它的精确 x y 半径 和颜色 我使用函数 cv2 Canny 和 cv2 findContours 来找到它 但问题是 cv2 Canny 并不总是检测到圆的完整
  • C++ 中的析构函数

    我的 AB h 文件中有一个构造函数 class AB private int i public AB i 0 constructor AB i 0 destructor virtual void methodA unsigned int

随机推荐

  • Android Wear 中的 SurfaceView (API 21)

    我想在 Android Wear 项目中使用 SurfaceView 来渲染视差背景 请参阅随附的屏幕截图 问题 SurfaceView 在大约 1000 毫秒后消失 但汽车仍然存在 因此黑色背景上有一辆粉红色的汽车 SurfaceView
  • 当从 Java GUI 中删除记录时,记录没有从 MySQL 数据库的表中删除?

    编辑问题 当我单击删除按钮时 表中的行将在 GUI 中删除 但不会从 mysql 服务器的数据库中删除 这是代码 数据库存储 这部分运行良好 public class DatabaseStore private final String s
  • d3.js:垂直移动线与折线图的交点

    我正在使用 d3 库来绘制线图 以下是我生成折线图的代码
  • 避免 C 程序中的 main(入口点)

    是否可以避免 C 程序中的入口点 主 在下面的代码中 是否可以调用func 无需通过以下方式拨打电话main 在下面的程序中 如果是 如何做 何时需要以及为什么给出这样的规定 int func void printf This is fun
  • 如果文件存在,如何使用 .htaccess 从缓存中静默读取?这可能吗?

    我有这个文件结构 index php test php example foo bar test php cache index htm cache test htm cache foo bar test htm cache 中的所有内容都
  • 为什么我的组件超出了边界,请帮助我将其与必要的代码对齐

    import net java dev designgridlayout Tag import net java dev designgridlayout DesignGridLayout import javax swing table
  • Matlab图转pdf:测量精度

    我通过保存由以下 Matlab 代码生成的图形来生成 PDF 什么时候x 4 它使用 PDF 测量工具生成了一个尺寸恰好为 4 英寸的正方形 但当x 5 出了问题 生成的 PDF 失去了准确性 请参阅下图 我正在尝试绘制一个精确的正方形 其
  • 使用 d3 显示 svg 文本的 IE11 问题

    我在使用 IE11 时遇到了一个奇怪的问题 我有一个用 d3 和某些转换完成的气泡图 气泡定义为
  • 我无法修复的 Pygame2Exe 错误

    我做了一个 游戏 我喜欢玩它 我想将它分发给我的朋友 而无需在他们的计算机上安装 Python 和 Pygame 我对 Py2Exe 和 Pyinstaller 做了很多研究 我查看了许多教程 修复 错误 但似乎没有一个对我有帮助 Pyin
  • XPath仅在直接子节点中选择一种类型的节点

    也许有人可以帮助我找到问题的解决方案 我需要在下面的 xml 中执行 XPath 查询 仅提取作为直接子节点的 Field 节点 在下面的示例中 查询应提取字段 E1F1 E1F2 和 E1F3 到目前为止我正在运行查询 Field 但我得
  • python套接字在逐行调试时工作正常,但在完整运行时无法工作[重复]

    这个问题在这里已经有答案了 我正在开发一个项目 该项目涉及传输文件 并为文件的每个块进行 CRC 校验和计算 例如此处为 40960 字节 我的问题是 当我逐行调试代码时 一切正常 但当我完全运行代码时 我在接收器端得到不同的 CRC 校验
  • React Material-UI 中“makeStyles”的内部实现?

    这个问题的目的是了解幕后发生的事情 每次我找到代码时makeStyles 我觉得我只是在做纯粹的复制粘贴 而不了解幕后发生的事情 所以我想在这里发布一个问题 以便有人可以帮助我 我在许多 React 应用程序中看到过以下代码 我很好奇 想知
  • 无法使用 Egit 和 Bitbucket 进行推送

    我一直在尝试使用 EGit 和 Bitbucket 启动一个项目 但无法将项目推送到服务器中的存储库 这些是我遵循的步骤 我会尝试非常具体 以便其他人可以将其用作教程模式 即使它对我不起作用 但可能对其他人有用 1 我在 Ubuntu 12
  • 仅用 CSS 可以扩展文本区域吗?

    我有一个高度为 200 像素的文本区域 但是当我通过文本传递 200 像素时 我希望扩展文本区域 而不是使用滚动条保留 200 像素的高度 只用CSS就可以做到这一点吗 代替textarea 您可以使用div with 内容可编辑 http
  • 这个弹出窗口类的名称是什么?

    我找不到这个类的名称 popover 苹果在他们的应用程序中大量使用它 我已经寻找过popover NSAlert 自定义隐藏 可见视图等等 这叫什么 This is UIAlertController 在ios 7之前它被称为UIActi
  • winforms 应用程序中托管的 MSIE WebBrowser 控件以兼容模式运行

    我以 winforms 形式托管 MSIE 不幸的是 无论我是否给它一个在独立 IE 中以 IE8 模式运行的页面 它都坚持以兼容模式运行 其结果是 一些在独立 MSIE 中正确呈现的内容在托管控件中完全错位和混乱 除了文档类型等之外 是否
  • 通过 URL cakePHP 传递多个、单个或无参数

    所以我有以下控制器函数来添加事件 public function add id null year null month null day null service id null project id null 在某些情况下 我需要做的是
  • pyenv-virtualenv:pyenv 中未安装“3.6.4”

    这让我很困惑 我不知道这意味着什么 我的计算机 MacOS 上安装了 3 6 4 但它不想工作 我想不出任何解决办法 也不知道该怎么办 无论你是在 Mac 还是 Linux 上 答案都略有不同 我不习惯在 Windows 上运行 Pytho
  • linux 区域设置未设置

    我有一台基于 ARM 的机器 上面装有 ubuntu 发行版 它经常在运行各种命令时向我提供以下信息 Please check that your locale settings LANGUAGE unset LC ALL unset LA
  • C#计算阶乘

    我有这段代码 它从用户那里获取输入并计算其阶乘和小于输入数字的阶乘 但我一直只获取第一个数字的阶乘 其余为 0 它应该是这样的 例如 如果输入为 5 5 120 4 24 3 6 2 4 1 1 如何让循环遍历输入数字下面的所有数字 usi