C/C++的阶乘求和以及变量存储数据大小

2024-09-06 23:28

本文主要是介绍C/C++的阶乘求和以及变量存储数据大小,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

1. 前言

2. 正文

2.1 问题

2.2 解决办法

2.2.1 思路

2.2.2 代码实现

2.2.3 测试结果

3. 备注


1. 前言

其实刚学C语言的时候,打击都会先认识,类型,像int,double之类的存储类型。在这篇文章中,就需要大家对这个大小有了解。

2. 正文

2.1 问题

题目描述:

一个正整数如果等于组成它的各位数字的阶乘之和,该整数称为阶乘和数。
例如,145=1!+4!+5!,则145是一个三位阶乘和数。
请问:共有多少个阶乘和数?(不会超过十万)

输入格式:

输出格式:

所有的阶乘和数(按字典序,即1打头的在前,2打头的次之,..., 空格分隔)

样例输入:

样例输出:

1 145 2 40585 

2.2 解决办法

2.2.1 思路

这个求阶乘和,大家都会,本来也没那么难,主要的是存储这个结果变量,需要怎么定义合适。

那么大家要知道存储变量类型都有什么,short int long long long类型这是有符号的,无符号的在前面家unsigned。所以在这个题目选择合适的变量就可以了,int完全够用了。

看完题目之后,大家还是可以现场是写一下,必经过程和思路都是最重要的。

2.2.2 代码实现

#include <iostream>
#include <vector>
#include <string.h>
#include <algorithm>
using namespace std;
int arr[5];
int getjiecheng(int data)
{if (data == 1){return 1;}elsereturn getjiecheng(data - 1) * data;
}
bool is_jiechenghe_member(int data)
{int i = 4, jiecheng = 0, temp = data;while (data){arr[i] = data % 10;data /= 10;i--;}for (int j = i + 1; j < 5; j++){if (arr[j] != 0)jiecheng += getjiecheng(arr[j]);elsejiecheng += 1;}memset(arr, 0, sizeof(arr));if (temp == jiecheng)return true;elsereturn false;
}
bool sort_self(int a, int b)
{while (a / 10){a /= 10;}while (b / 10){b /= 10;}return a < b;
}
int main()
{const int aaa = 100000;vector<int> result;for (int i = 1; i < aaa; i++){if (true == is_jiechenghe_member(i)){result.push_back(i);}}sort(result.begin(), result.end(), sort_self);for (int data : result){cout << data << ' ';}cout << endl;result.clear();return 0;
}

2.2.3 测试结果

 大家可以直接在这个线上的编译环境执行

码曰 - 让代码在云端多飞一会 (dotcpp.com)

3. 备注

不知道大家发现了没有,写的代码久了,发现一些基础的知识开始忘记了,慢慢的被丢掉了。这难道就是神功的忘我境界吗?

>>>>>>

要么你主宰生活,要么你被生活主宰。——吉姆·罗恩

 >>>>>>

制作不易,且行且珍惜,点个关注支持下吧。

这篇关于C/C++的阶乘求和以及变量存储数据大小的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1143412

相关文章

大模型研发全揭秘:客服工单数据标注的完整攻略

在人工智能(AI)领域,数据标注是模型训练过程中至关重要的一步。无论你是新手还是有经验的从业者,掌握数据标注的技术细节和常见问题的解决方案都能为你的AI项目增添不少价值。在电信运营商的客服系统中,工单数据是客户问题和解决方案的重要记录。通过对这些工单数据进行有效标注,不仅能够帮助提升客服自动化系统的智能化水平,还能优化客户服务流程,提高客户满意度。本文将详细介绍如何在电信运营商客服工单的背景下进行

基于MySQL Binlog的Elasticsearch数据同步实践

一、为什么要做 随着马蜂窝的逐渐发展,我们的业务数据越来越多,单纯使用 MySQL 已经不能满足我们的数据查询需求,例如对于商品、订单等数据的多维度检索。 使用 Elasticsearch 存储业务数据可以很好的解决我们业务中的搜索需求。而数据进行异构存储后,随之而来的就是数据同步的问题。 二、现有方法及问题 对于数据同步,我们目前的解决方案是建立数据中间表。把需要检索的业务数据,统一放到一张M

关于数据埋点,你需要了解这些基本知识

产品汪每天都在和数据打交道,你知道数据来自哪里吗? 移动app端内的用户行为数据大多来自埋点,了解一些埋点知识,能和数据分析师、技术侃大山,参与到前期的数据采集,更重要是让最终的埋点数据能为我所用,否则可怜巴巴等上几个月是常有的事。   埋点类型 根据埋点方式,可以区分为: 手动埋点半自动埋点全自动埋点 秉承“任何事物都有两面性”的道理:自动程度高的,能解决通用统计,便于统一化管理,但个性化定

使用SecondaryNameNode恢复NameNode的数据

1)需求: NameNode进程挂了并且存储的数据也丢失了,如何恢复NameNode 此种方式恢复的数据可能存在小部分数据的丢失。 2)故障模拟 (1)kill -9 NameNode进程 [lytfly@hadoop102 current]$ kill -9 19886 (2)删除NameNode存储的数据(/opt/module/hadoop-3.1.4/data/tmp/dfs/na

异构存储(冷热数据分离)

异构存储主要解决不同的数据,存储在不同类型的硬盘中,达到最佳性能的问题。 异构存储Shell操作 (1)查看当前有哪些存储策略可以用 [lytfly@hadoop102 hadoop-3.1.4]$ hdfs storagepolicies -listPolicies (2)为指定路径(数据存储目录)设置指定的存储策略 hdfs storagepolicies -setStoragePo

HDFS—存储优化(纠删码)

纠删码原理 HDFS 默认情况下,一个文件有3个副本,这样提高了数据的可靠性,但也带来了2倍的冗余开销。 Hadoop3.x 引入了纠删码,采用计算的方式,可以节省约50%左右的存储空间。 此种方式节约了空间,但是会增加 cpu 的计算。 纠删码策略是给具体一个路径设置。所有往此路径下存储的文件,都会执行此策略。 默认只开启对 RS-6-3-1024k

Hadoop集群数据均衡之磁盘间数据均衡

生产环境,由于硬盘空间不足,往往需要增加一块硬盘。刚加载的硬盘没有数据时,可以执行磁盘数据均衡命令。(Hadoop3.x新特性) plan后面带的节点的名字必须是已经存在的,并且是需要均衡的节点。 如果节点不存在,会报如下错误: 如果节点只有一个硬盘的话,不会创建均衡计划: (1)生成均衡计划 hdfs diskbalancer -plan hadoop102 (2)执行均衡计划 hd

【C++ Primer Plus习题】13.4

大家好,这里是国中之林! ❥前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站。有兴趣的可以点点进去看看← 问题: 解答: main.cpp #include <iostream>#include "port.h"int main() {Port p1;Port p2("Abc", "Bcc", 30);std::cout <<

C++包装器

包装器 在 C++ 中,“包装器”通常指的是一种设计模式或编程技巧,用于封装其他代码或对象,使其更易于使用、管理或扩展。包装器的概念在编程中非常普遍,可以用于函数、类、库等多个方面。下面是几个常见的 “包装器” 类型: 1. 函数包装器 函数包装器用于封装一个或多个函数,使其接口更统一或更便于调用。例如,std::function 是一个通用的函数包装器,它可以存储任意可调用对象(函数、函数

变量与命名

引言         在前两个课时中,我们已经了解了 Python 程序的基本结构,学习了如何正确地使用缩进来组织代码,并且知道了注释的重要性。现在我们将进一步深入到 Python 编程的核心——变量与命名。变量是我们存储数据的主要方式,而合理的命名则有助于提高代码的可读性和可维护性。 变量的概念与使用         在 Python 中,变量是一种用来存储数据值的标识符。创建变量很简单,