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

题目:

对一个非负整数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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【SpringMVC】—— 如何配置使用SpringMVC(详细步骤)

目录 引言 使用 1、新建模块 2、导入坐标 3、创建SpringMVC控制器类 4、初始化SpringMVC环境 5、初始化Servlet容器&#xff0c;加载SpringMVC环境 6、配置运行 引言 SpringMVC是一种基于Java实现MVC模型的轻量级Web框架&#xff0c;SpringMVC是表现层(web层)的框架,也…

Java开发笔记

一、参数校验 1、校验json字符串是否符合规范 &#xff08;1&#xff09;业务场景&#xff1a;接收前端传输过来的json串&#xff0c;需要将其写入数据库&#xff0c;写入之前需要校验其是否能够转换成对应实体类&#xff0c;以便后续从数据库读取   &#xff08;2&#xff0…

条件控制生成---相关论文集合

1. IP-Adapter 论文地址 解决问题&#xff1a; 如何将图片作为prompt输入网络&#xff0c;并无需更改开源模型参数 解决思路&#xff1a; 新增一个cross-attention layers&#xff0c;结果与text prompt的cross-attention layers结果相加后输入网络&#xff0c;只需要训练Wk, …

细说JavaScript对象(JavaScript对象详解)

在JavaScript中对象作为数据类型之一&#xff0c;它的数据结构区别于其余5中数据类型&#xff0c;从数据结构角度看对象就是数据值的几个&#xff0c;其书就结构就是若干组名值对&#xff0c;类似于其他语言中的哈希、散列 关联数组等&#xff0c;但对象在JavaScript中不仅仅扮…

基于Python+Django,我搭建一个视频点播平台

学习过程中&#xff0c;遇到问题可以咨询作者 功能介绍 平台采用B/S结构&#xff0c;后端采用主流的Python语言进行开发&#xff0c;前端采用主流的Vue.js进行开发。 整个平台包括前台和后台两个部分。 前台功能包括&#xff1a;首页、视频列表页面、视频详情页、用户中心模…

VMware workstation安装Fedora-Server-39-1.5虚拟机并配置网络

VMware workstation安装Fedora-Server-39-1.5虚拟机并配置网络 Fedora包含的软件以自由及开放源码许可来发布&#xff0c;并旨在成为该技术领域的领先者。Fedora在专注创新、抢先集成新技术、与上游Linux社区紧密工作方面拥有良好名声。该文档适用于在VMware workstation平台安…

一篇文章掌握负载均衡Ribbon作用和架构以及核心组件

目录 1、Ribbon是什么 2、Ribbon的作用 1.集中式LB 2.进程式LB 3、Ribbon负载均衡架构 总结&#xff1a; 4、Ribbon核心组件IRule 1、Ribbon是什么 Spring Cloud Ribbon是基于Netflix Ribbon实现的一套客户端负载均衡的工具。 简单的说&#xff0c;Ribbon是Netflix发布…

消失的水母-第15届蓝桥第三次STEMA测评Scratch真题精选

[导读]&#xff1a;超平老师的《Scratch蓝桥杯真题解析100讲》已经全部完成&#xff0c;后续会不定期解读蓝桥杯真题&#xff0c;这是Scratch蓝桥杯真题解析第165讲。 第15届蓝桥杯第3次STEMA测评已于2023年12月17日落下帷幕&#xff0c;编程题一共有6题&#xff0c;分别如下&…

【野火i.MX6NULL开发板】Linux系统下的Hello World

0、前言 参考资料&#xff1a; 《野火 Linux 基础与应用开发实战指南基于 i.MX6ULL 系列》PDF 第25章 本章比较抽象&#xff0c;涉及理论知识&#xff0c;不明白&#xff0c;可以看看视频讲解&#xff1a; https://www.bilibili.com/video/BV1JK4y1t7io?p29&vd_sourcef…

Day6 Qt

思维导图 1.数据库增删改查 头文件widget.h #ifndef WIDGET_H #define WIDGET_H#include <QWidget> #include <QSqlDatabase> //数据库管理类 #include <QSqlQuery> // 执行sql语句类 #include <QSqlRecord> //数据库记录类 #include <QSqlErro…

程序员的健康手册

大家好&#xff0c;我是 javapub。 马上迎来 2024 农历新年&#xff0c;这个是 COVID-19 后的第一个春节。用女朋友的话来说&#xff0c;这几年像在梦里一样&#xff0c;可能生活了几十年的人都想象不到会发生这样的事。不过不论世界怎么变&#xff0c;我们都要过生活、过好当…

leetcode 349 两个数组的集合

题目 给定两个数组 nums1 和 nums2 &#xff0c;返回 它们的交集 。输出结果中的每个元素一定是 唯一 的。我们可以 不考虑输出结果的顺序 。 示例 1&#xff1a; 输入&#xff1a;nums1 [1,2,2,1], nums2 [2,2] 输出&#xff1a;[2] 示例 2&#xff1a; 输入&#xff1a…

LeetCode 0082.删除排序链表中的重复元素 II:模拟

【LetMeFly】82.删除排序链表中的重复元素 II&#xff1a;模拟 力扣题目链接&#xff1a;https://leetcode.cn/problems/remove-duplicates-from-sorted-list-ii/ 给定一个已排序的链表的头 head &#xff0c; 删除原始链表中所有重复数字的节点&#xff0c;只留下不同的数字…

windows的换行符与linux风格的换行符不同的问题

问题展示&#xff1a; 说明&#xff1a; 出现这个错误的原因是脚本文件包含了windows风格换行符&#xff08;‘\r\n’&#xff09;&#xff0c;而在linux环境下&#xff0c;通常使用unix风格的换行符&#xff08;‘\n’&#xff09;.这个问题通常在windows环境下编辑脚本文件然…

leetcode 17 电话号码字母组合

题目 给定一个仅包含数字 2-9 的字符串&#xff0c;返回所有它能表示的字母组合。答案可以按 任意顺序 返回。 给出数字到字母的映射如下&#xff08;与电话按键相同&#xff09;。注意 1 不对应任何字母。 示例 1&#xff1a; 输入&#xff1a;digits “23” 输出&#xf…

模拟瑞幸的购物车

是根据渡一大师课来写的&#xff0c;如有什么地方存在问题&#xff0c;还请大家在评论区指出来。ど⁰̷̴͈꒨⁰̷̴͈う♡&#xff5e; index.html <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8" /><meta http…

《产业结构调整指导目录(2024年本)》发布,模糊测试首次纳入

近日&#xff0c;第6次委务会议通过了新版的《产业结构调整指导目录&#xff08;2024年本&#xff09;》&#xff0c;该目录自2024年2月1日起正式实施。 与之前的版本相比&#xff0c;本次目录在行业设置上进行了全面升级&#xff0c;新增了“网络安全”这一重要行业大类&#…

数据管理-首选项

文章目录 1 概述2 什么是首选项3 首选项运作机制4 常用接口介绍常用接口使用前提保存数据&#xff08;put&#xff09;获取数据&#xff08;get&#xff09;是否包含指定的key&#xff08;has&#xff09;数据持久化&#xff08;flush&#xff09;删除数据&#xff08;delete&a…

spring cloud nacos注册与配置中心

简介 一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。 Nacos: Dynamic Naming and Configuration Service Nacos就是注册中心&#xff0b;配置中心的组合 -> Nacos EurekaConfigBus docker安装 https://nacos.io/zh-cn/docs/quick-start-docker.html…

手把手教你如何搭建Spring本地编译环境

大家好&#xff0c;我是极客涛&#xff0c;不知道小伙伴有没有和我一样的情况&#xff0c;在阅读Spring源码时&#xff0c;只通过静态的代码阅读很难有更深刻的理解&#xff0c;所以建议通过写测试类进行debug的方式&#xff0c;对核心的代码进行运行时的状态调试&#xff0c;这…