《C++大学教程》4.34阶乘

news2024/9/24 19:20:42

题目:

对一个非负整数n来说,它的阶乘可以写成 n! (读作“n的阶乘”),其计算公式定义如下:

 n! = n x (n-1) x (n-2)x......x1(对于大于1的 n )

 n! = 1 ( 对于等于0或者等于1的n )

例如,5!=5 x 4 x 3 x 2 x 1,结果是120.下面用while语句完成:

a)编写一个程序,要求读入一个非负整数,然后计算和打印它的阶乘;

b)编写一个程序,使用如下公式:

e=1+1/1!​+1/2!​+……+1/(n−1)!​

c)编写一个程序,使用如下的公式估算e^x的值:

e=1+x/1!​+(x^2)/(2!)​+……+( x^(n-1) )/( (n−1)! )

程序如下:

a)编写一个程序,要求读入一个非负整数,然后计算和打印它的阶乘;

//4.34a.cpp

#include <iostream>
using namespace std;

int main()
{
    unsigned int num;
    cout << "请输入一个非负整数:";
    cin >> num;

    double jiecheng = 1; // 存放阶乘的变量

    if (num == 0 || num == 1)
    {
        jiecheng = 1;
    }
    else
    {
        while (num != 0)
        {
            jiecheng *= num;
            num--;
        }
    }

    cout << " 它的阶乘是 " << jiecheng << endl;
    return 0;
}

运行截图:

b)编写一个程序,使用如下公式:

e=1+1/1!​+1/2!​+……+1/(n−1)!​

//4.34b.cpp

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

int main()
{
    int i = 0, sumNumber, num;
    double e = 1;
    cout << "e得精度是:";
    cin >> sumNumber; // 累加求和的项数,也是精度

    if (sumNumber > 1) // 控制当精度为1时,e=1
    {
        i = 1;
    }

    while (i < sumNumber)
    {
        num = i;             // 用于计算阶乘的数
        double jiecheng = 1; // 存放阶乘的变量
        if (i == 0)
        {
            jiecheng = 1; // 此时e=1
            break;
        }
        else
        {
            while (num != 0)
            {
                jiecheng *= num;
                num--;
            }
        }
        e += (1 / jiecheng);
        cout << setprecision(6) << fixed;
        i++; // 控制循环
    }
    cout << " e = " << e << endl;
    return 0;
}

运行截图:(精度为1和2为特殊情况)
注意:标准e=2.718281828459045

c)编写一个程序,使用如下的公式估算e^x的值:

e^x=1+x/1!​+(x^2)/(2!)​+……+( x^(n-1) )/( (n−1)! )

//4.34c.cpp

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

int main()
{
    int i = 0, sumNumber, num;

    double e = 1;
    int x; // x表示的e的幂数
    cout << "请输出e的幂数:";
    cin >> x;

    cout << "e^" << x << "次幂要求的精度是:";
    cin >> sumNumber; // 累加求和的项数,也是精度

    if (sumNumber > 1) // 控制当精度为1时,e=1
    {
        i = 1;
    }

    while (i < sumNumber)
    {
        num = i;
        double jiecheng = 1; // 存放阶乘的变量
        if (i == 0)
        {
            jiecheng = 1; // 此时e=1
            break;
        }
        else
        {
            while (num != 0)
            {
                jiecheng *= num;
                num--;
            }
        }
        e += (pow(x, i) * (1 / jiecheng));
        cout << setprecision(6) << fixed;
        i++; // 控制循环
    }
    cout << "e = " << e << endl;
    return 0;
}

运行截图:(满足特殊情况,精度为1)

注意:百度e²≈7.3891

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1387925.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

深信服技术认证“SCSA-S”划重点:逻辑漏洞

为帮助大家更加系统化地学习网络安全知识&#xff0c;以及更高效地通过深信服安全服务认证工程师考核&#xff0c;深信服特别推出“SCSA-S认证备考秘笈”共十期内容&#xff0c;“考试重点”内容框架&#xff0c;帮助大家快速get重点知识~ 划重点来啦 *点击图片放大展示 深信服…

助力工业焊缝质量检测,YOLOv7【tiny/l/x】不同系列参数模型开发构建工业焊接场景下钢材管道焊缝质量检测识别分析系统

焊接是一个不陌生但是对于开发来说相对小众的场景&#xff0c;在我们前面的博文开发实践中也有一些相关的实践&#xff0c;感兴趣的话可以自行移步阅读即可&#xff1a;《轻量级模型YOLOv5-Lite基于自己的数据集【焊接质量检测】从零构建模型超详细教程》 《基于DeepLabV3Plus…

视频剪辑批量工作流程:视频色调调整让影片更出色,视频制作的方法

随着视频制作需求的不断增加&#xff0c;高效的批量工作流程在视频剪辑中变得越来越常见。色调调整是提升影片质量的部分环节。现在一起来看云炫AI智剪如何批量调整视频色调的操作。 原视频与色调调整后的视频效果对比。 视频色调调整的详细步骤&#xff1a; 操作1、在云炫AI…

【Python】tensor格式数据转为图像,并保存图像详解和示例

在项目中遇到一个tensor格式的数据&#xff0c;要保存为图像&#xff0c;此文对转换过程通过示例分享&#xff0c;以记录学习过程和帮助大家遇到同类问题时使用。 import torch import cv2 import numpy as np# 创建一个示例张量&#xff08;tensor&#xff09; input_tensor …

使用 TiUP 部署 TiDB 集群

TIDB优点 支持分布式且支持事务的关系型数据库&#xff0c;不用考虑分库分表 同时满足了可伸缩&#xff0c;高可用&#xff0c;关系型&#xff0c;支持事务。 基本上按官网的文档来就行了。 在线部署 以普通用户身份登录中控机。以 tidb 用户为例&#xff0c;后续安装 TiUP …

每日一练:LeeCode-144、145、94.二叉树的前中后序遍历【二叉树】

本文是力扣LeeCode-144、145、94.二叉树的前中后序遍历 学习与理解过程&#xff0c;本文仅做学习之用&#xff0c;对本题感兴趣的小伙伴可以出门左拐LeeCode前序遍历、中序遍历、后序遍历。 给你二叉树的根节点 root &#xff0c;返回它节点值的 前序遍历。 给定一个二叉树的根…

Mendeley Word 文献引用

这里写目录标题 1. 下载Mendeley 并插入到Word1.1 下载安装1.2 在Word 中添加Mendeley 插件文献引用相关 1. 下载Mendeley 并插入到Word 1.1 下载安装 Mendeley 官网下载 1.2 在Word 中添加Mendeley 插件 打开 Mendeley&#xff0c;点击 Tools —>Install Mendeley Cite…

Qt6入门教程 6:Qt元对象系统

目录 一.什么是Qt元对象系统&#xff1f; 二.编译时Qt Creator偷摸做了哪些事情&#xff1f; 1.uic 2.rcc 3.moc 一.什么是Qt元对象系统&#xff1f; Qt中的元对象系统&#xff08;Meta-Object System&#xff09;提供了对象间通信的信号和槽机制、运行时类型信息和动态属…

电池包的UL9540A,电池PACK的UL9540A,工商储的UL9540A,电芯的UL9540A,电池模组的UL9540A,家储的UL9540A

电池包的UL9540A,电池PACK的UL9540A,工商储的UL9540A&#xff0c;电芯的UL9540A&#xff0c;电池模组的UL9540A,家储的UL9540A UL9540A要求ESS在不同条件下进行测试&#xff0c;并要求满足特定的性能要求。测试包括热暴露测试、短路测试、过充电和过放电测试、外部影响测试等。…

从零开发短视频电商 PaddleOCR Java推理 (四)优化OCR工具类

从零开发短视频电商 PaddleOCR Java推理 &#xff08;四&#xff09;优化OCR工具类 参考&#xff1a;https://github.com/mymagicpower/AIAS/blob/9dc3c65d07568087ac71453de9070a416eb4e1d0/1_image_sdks/ocr_v4_sdk/src/main/java/top/aias/ocr/OcrV4RecExample.java import …

统计学之常见的分布介绍

统计学中常见的分布有&#xff1a; 1. 正态分布&#xff08;Normal Distribution&#xff09;&#xff1a;也称为高斯分布&#xff0c;是最常见的分布之一&#xff0c;具有钟形曲线&#xff0c;对称且均值和标准差可以完全描述该分布。 2. 二项分布&#xff08;Binomial Dist…

最新情侣飞行棋源码完全解析+搭建教程:让爱情在游戏中升温!

游戏玩法 摇筛子自动走棋&#xff1a;再也不用手动掷骰子&#xff0c;轻轻一点&#xff0c;棋子自动前进。让游戏更加轻松愉快。任务挑战&#xff1a;每个格子都藏有不同的任务。这些任务既有趣又挑战性&#xff0c;需要你们共同思考、协作完成。当然&#xff0c;你们也可以选…

纯c实现顺序表 数据结构大全

我们已经知道数组是连续的内存地址&#xff0c;顺序表是由数组为基础的一种数据结构&#xff0c;拥有比数组更多的功能&#xff0c;在概念上属于线性结构&#xff0c;跟链表不同的是&#xff0c;顺序表在物理结构上也是线性的 什么是数据结构&#xff1f; 当我们想要使⽤⼤量使…

交友脱单盲盒源码,纸条广场,支持单独抽取/连抽/同城

源码介绍 交友脱单盲盒源码&#xff0c;纸条广场&#xff0c;单独抽取/连抽/同城。 盲 盒交友脱单系统源码包含了学校、爱好、城市、地区、星座等 等信息&#xff0c;具有首页轮转广告和页面美化功能。 首页提供了两款 连抽和高质量底部连抽的选项&#xff0c;并且可以在后台…

❤ React报错问题分析

❤ React报错问题分析 ❤️ You passed a second argument to root.render(…) but it only accepts one argument. You passed a second argument to root.render(…) but it only accepts one argument. react-dom.development.js:86 Warning: You passed a second argumen…

transfomer中Decoder和Encoder的base_layer的源码实现

简介 Encoder和Decoder共同组成transfomer,分别对应图中左右浅绿色框内的部分. Encoder&#xff1a; 目的&#xff1a;将输入的特征图转换为一系列自注意力的输出。 工作原理&#xff1a;首先&#xff0c;通过卷积神经网络&#xff08;CNN&#xff09;提取输入图像的特征。然…

java如何修改windows计算机本地日期和时间?

本文教程&#xff0c;主要介绍&#xff0c;在java中如何修改windows计算机本地日期和时间。 目录 一、程序代码 二、运行结果 一、程序代码 package com;import java.io.IOException;/**** Roc-xb*/ public class ChangeSystemDate {public static void main(String[] args)…

MySQL面试题 | 10.精选MySQL面试题

&#x1f90d; 前端开发工程师&#xff08;主业&#xff09;、技术博主&#xff08;副业&#xff09;、已过CET6 &#x1f368; 阿珊和她的猫_CSDN个人主页 &#x1f560; 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 &#x1f35a; 蓝桥云课签约作者、已在蓝桥云…

WinForms TreeView 控件:保持节点选中状态即使失去焦点

WinForms TreeView 控件&#xff1a;保持节点选中状态即使失去焦点 在 Windows 窗体&#xff08;WinForms&#xff09;应用程序中&#xff0c;TreeView 控件是一种非常有用的界面元素&#xff0c;允许用户以层次结构的方式浏览信息。然而&#xff0c;一个常见的用户界面问题是&…

关于浮点数的四舍五入问题

最近有关注到&#xff0c;在C/C中&#xff0c;对于浮点数的四舍五入&#xff0c;与实际的有一些出入&#xff0c;我打算今天总结一下&#xff0c;并解释一下这是为啥&#xff0c; 好了&#xff0c;下面进入正题&#xff0c;都是干货哦&#xff0c;认真看完&#xff0c;留下你的…