8617 阶乘数字和

这是一个关于计算阶乘结果所有位上的数字之和的问题。我们可以通过以下步骤来解决这个问题:

1. 首先,我们需要一个函数来计算阶乘。由于n的范围可以达到50,阶乘的结果可能非常大,所以我们需要使用一个可以处理大整数的数据类型,例如C++中的`std::vector<int>`来存储阶乘的结果。

2. 然后,我们需要一个函数来计算一个大整数所有位上的数字之和。我们可以通过遍历`std::vector<int>`中的每个元素来实现这一点。

3. 最后,我们需要一个循环来处理多个测试用例。当输入为0时,我们结束循环。

以下是实现这个问题的C++代码:

#include <iostream>
#include <vector>

std::vector<int> factorial(int n) {
    std::vector<int> result(1, 1);
    for (int i = 1; i <= n; ++i) {
        int carry = 0;
        for (int j = 0; j < result.size(); ++j) {
            int temp = result[j] * i + carry;
            result[j] = temp % 10;
            carry = temp / 10;
        }
        while (carry) {
            result.push_back(carry % 10);
            carry /= 10;
        }
    }
    return result;
}

int digitSum(const std::vector<int>& num) {
    int sum = 0;
    for (int digit : num) {
        sum += digit;
    }
    return sum;
}

int main() {
    while (true) {
        int n;
        std::cin >> n;
        if (n == 0) {
            break;
        }
        std::vector<int> fact = factorial(n);
        std::cout << digitSum(fact) << std::endl;
    }
    return 0;
}

这段代码首先计算了n的阶乘,然后计算了阶乘结果所有位上的数字之和,最后输出了这个和。

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

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

相关文章

零成本、高效率:免费可视化工具的魅力所在

在如今这个数据驱动的时代&#xff0c;免费可视化工具越来越受到人们的欢迎。这些工具不仅降低了数据分析的门槛&#xff0c;还为用户提供了强大的功能和极高的灵活性&#xff0c;使得各行各业的人们都能够轻松地利用数据做出明智的决策。首先&#xff0c;免费可视化工具的零成…

软件鉴定测试的工作内容是什么?专业软件鉴定测试报告获取指南

软件鉴定测试是指对软件产品进行全面的检测和评估&#xff0c;以验证其是否符合规定的标准和要求。通过测试&#xff0c;能够发现软件中存在的问题和缺陷&#xff0c;并提供相应的改进建议。在不同的测试阶段&#xff0c;使用不同的测试方法和工具&#xff0c;包括功能测试、性…

智慧公厕系统改变了人们对服务区公厕的看法

在过去&#xff0c;服务区公厕常常给人留下脏乱差的印象&#xff0c;成为人们在长途旅行途中不愿停留的地方。然而&#xff0c;随着智慧科技的不断发展和应用&#xff0c;智慧公厕系统的出现改变了人们对服务区公厕的看法&#xff0c;为公共卫生设施的提升注入了新的活力。 一、…

链路全贯通,价值引领数据能力升级|爱分析报告

数据能力已经成为企业的核心竞争力。政策驱动数据产业发展加速&#xff0c;如2023年国家数据局成立&#xff1b;2024年&#xff0c;《“数据要素”三年行动计划&#xff08;2024-2026年&#xff09;》正式发布&#xff1b;并且 2024年起正式将数据资源视为资产纳入财务报表&…

一键变身!Cloud-Init让PVE镜像华丽转身,快来看看怎么做!

在虚拟化环境中&#xff0c;自动化配置虚拟机&#xff08;VM&#xff09;是提高效率的关键。Proxmox VE&#xff08;PVE&#xff09;是一款流行的开源虚拟化平台&#xff0c;而Cloud-Init是一种用于初始化云实例的工具。结合PVE和Cloud-Init&#xff0c;我们可以快速创建和配置…

红酒与露营:户外时光的好伴侣

在繁忙的都市生活中&#xff0c;人们总是渴望逃离喧嚣&#xff0c;寻找一处宁静的天地&#xff0c;与大自然亲密相拥。露营&#xff0c;作为一种返璞归真的户外生活方式&#xff0c;成为了许多人心中的理想选择。而在露营的浪漫时光里&#xff0c;一瓶雷盛红酒的陪伴&#xff0…

内网渗透学习-杀入内网

1、靶机上线cs 我们已经拿到了win7的shell&#xff0c;执行whoami&#xff0c;发现win7是administrator权限&#xff0c;且在域中 执行ipconfig发现了win7存在内网网段192.168.52.0/24 kali开启cs服务端 客户端启动cs 先在cs中创建一个监听器 接着用cs生成后门&#xff0c;记…

开源RAG个人知识库项目开发分析

前言 Hello&#xff0c;大家好&#xff0c;我是GISer Liu&#x1f601;&#xff0c;一名热爱AI技术的GIS开发者&#xff0c;这个LLM开发基础阶段已经进入尾声了&#xff0c;本文中我们不介绍更多的理论与知识点&#xff0c;而是通过的分析开源项目的解决方案来帮助各位开发者理…

Pytest--安装与入门

pytest是一个能够简化成测试系统构建、方便测试规模扩展的框架&#xff0c;它让测试变得更具表现力和可读性–模版代码不再是必需的。只需要几分钟的时间&#xff0c;就可以对你的应用开始一个简单的单元测试或者复杂的功能测试。 1. 安装pytest pip install -U pytest检查版…

计算机人说学校-北京交通大学-计算机方向

北京交通大学&#xff08;Beijing Jiaotong University&#xff0c;简称BJTU&#xff09;是一所位于中国首都北京的全国重点大学&#xff0c;隶属于中华人民共和国教育部&#xff0c;并由教育部、交通运输部、北京市人民政府和中国国家铁路集团有限公司共建。该校是国家“双一流…

为什么 [] == ![] 为 true?

&#x1f9d1;‍&#x1f4bb; 写在开头 点赞 收藏 学会&#x1f923;&#x1f923;&#x1f923; 前言 面试官问我&#xff0c;[] ![] 的结果是啥&#xff0c;我&#xff1a;蒙一个true&#xff1b; 面试官&#xff1a;你是对的&#xff1b;我&#xff1a;内心非常高兴&a…

【PyTest】玩转HTML报告:修改、汉化和优化

前言 Pytest框架可以使用两种测试报告&#xff0c;其中一种就是使用pytest-html插件生成的测试报告&#xff0c;但是报告中有一些信息没有什么用途或者显示的不太好看&#xff0c;还有一些我们想要在报告中展示的信息却没有&#xff0c;最近又有人问我pytest-html生成的报告&a…

搜索型数据库的技术发展历程与趋势前瞻

概述 随着数字科技的飞速发展和信息量的爆炸性增长&#xff0c;搜索引擎已成为我们获取信息的首选途径之一&#xff0c;典型的代表厂商如 Google。然而&#xff0c;随着用户需求的不断演变&#xff0c;传统的搜索技术已经无法满足人们对信息的实时性、个性化和多样性的需求。 …

【启明智显技术分享】SSD202D核心板方案双网口SBC2D06开发板开箱与实操全攻略上手指南

一、背景 本指南将详细介绍启明智显基于SSD202D核心板方案下的双网口-SBC2D06的开箱及实操上手应用。无论您是电子爱好者、开发者还是工程师&#xff0c;这份指南都能助您快速上手并充分利用这款双网口开发板的各项功能。 二、硬件介绍 SBC2D06双网口开发板&#xff0c;作为…

什么方法能快速分享视频给他人?视频二维码提供预览的制作技巧

现在想要分享一个或者多个视频时&#xff0c;很多人会选择将视频生成二维码的方法来展现视频内容&#xff0c;通过这种方式可以让多人同时扫码查看同一个视频&#xff0c;有效提升其他人获取内容的速度及视频传播的效率。那么视频转换成二维码的方法是什么样的呢&#xff1f; …

USB PD+TYPE -C快充电源中MOSFET选型,USB PD应用市场包含智能手机,平板电脑,笔记本电脑,游戏本,移动硬盘,数码相机,电动工具等传统领域

USB PD全称为USB Power Delivery&#xff0c;是由USB-IF组织制定的一种快速充电协议&#xff0c;也是目前市场非常看好的一种协议&#xff0c;可以支持输出功率高达100W&#xff1b;Type-C是一种接口规范&#xff0c;能够支持传输更大的电流。USB PD应用市场不仅包含智能手机&a…

【项目】个人论坛测试报告

论坛测试报告 一、项目背景二、项目功能三、测试计划一&#xff09;功能测试二&#xff09;自动化测试三&#xff09;性能测试登录测试 使用VUG创建脚本1&#xff09;编写用户进行登录的脚本2&#xff09;对脚本进行强化 使用controller创建场景使用Analysis生成测试报告测试报…

NX 二次开发-获取CAM切削层数据

int count 0;tag_t* objects;UF_UI_ONT_ask_selected_nodes(&count, &objects); //获取当前加工导航器选中的对象数量和tagif (count < 0){return 0;}UF_CUT_LEVELS_t* cut_levels_ptr_addr NULL; //读工序的切削层UF_CUT_LEVELS_load(objects[0], &…

高考失利咨询复读,银河补习班客服开挂回复

补习班的客服在高考成绩出来后&#xff0c;需要用专业的知识和足够的耐心来回复各种咨询&#xff0c;聊天宝快捷回复软件&#xff0c;帮助客服开挂回复。 ​ 前言 高考成绩出来&#xff0c;几家欢喜几家愁&#xff0c;对于高考失利的学生和家长&#xff0c;找一个靠谱的复读补…

Python的库dataperp读取excel和csv

领导说这个很牛&#xff0c;不过咱们不能听别人一口之言&#xff0c;咱们应该亲手试试&#xff0c;在来说这个好或者不好。 这个dataprepe已经不维护了&#xff0c;最高只支持python3.11以下版本,建议选择3.9. 他只能处理dataframe格式的数据&#xff0c;也就是pandas加载后的数…