求一个三位数,该三位数等于其每一位数字的阶乘之和。即 abc = a! + b! +c!_编写程序求一个三位数abc等于其每位数字的阶乘之和-程序员宅基地

技术标签: c语言  编程  

解题思路:
首先此题的程序主题为如何将一个三位数的每个数字拆分开,首先想到的是除以100得到百位数,除以10再减去百位数的十倍得到十位数。然而这样编出的程序过于繁琐,故想到了使用更简洁的语句执行。十位由三位数除10再对10取余数得到十位数;个位数直接对10取余数,这样更加简洁清晰。

难点
本题中要对 a , b , c ,进行阶乘,如果将阶乘的语句直接编写,程序将会变得冗长复杂,并且编写较为困难。因此想到了调用函数的方法

int fun(int i)
{
    int n = 1;
    int s = 1;

    while( n <= i)
    {
         s *= n;
         n += 1;
    }

    return s;
}

这样使得程序变得简洁并且在编写程序是使用更方便。
另外值得注意的是在最后记得加上 “ return s;”返回值运算的结果 s。

通过这一道题,加深了对调用函数的使用方法和注意事项的了解,进一步掌握了简化程序中含有复杂函数运算是的解决办法。

编程如下:

#include <stdio.h>
#include <math.h>

int fun(int i);

int main()
{
    int a,b,c,n;

    for( n = 100; n < 1000; n++)
    {
       a = n/100;
       b = (n/10)%10;
       c = n%10;

       if( n == fun(a)+fun(b)+fun(c) )
  printf(" %4d = %d!+%d!+%d!\n", n,a,b,c);
    }

    return 0;
}

int fun(int i)
{
    int n = 1;
    int s = 1;

    while( n <= i)
    {
         s *= n;
         n += 1;
    }

    return s;   
}

运行结果:

 145 = 1!+4!+5!
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/Zhoujy1996/article/details/71194237

智能推荐

2024秋季整合Github上最叼的Java教程和实战项目整合成了一个PDF文档,太香-程序员宅基地

文章浏览阅读291次,点赞5次,收藏9次。蚂蚁面试比较重视基础,所以Java那些基本功一定要扎实。蚂蚁的工作环境还是挺赞的,因为我面的是稳定性保障部门,还有许多单独的小组,什么三年1班,很有青春的感觉。面试官基本水平都比较高,基本都P7以上,除了基础还问了不少架构设计方面的问题,收获还是挺大的。经历这次面试我还通过一些渠道发现了需要大厂真实面试主要有:蚂蚁金服、拼多多、阿里云、百度、唯品会、携程、丰巢科技、乐信、软通动力、OPPO、银盛支付、中国平安等初,中级,高级Java面试题集合,附带超详细答案,希望能帮助到大家。

Redis 缓存穿透 击穿 雪崩_同类型的key固定时间+随机值间,-程序员宅基地

文章浏览阅读96次。Redis 缓存穿透 击穿 雪崩_同类型的key固定时间+随机值间,

【算法习题】数组中未出现的最小正整数-程序员宅基地

文章浏览阅读1.2k次。题目:给定一个无序整型数组arr,找到数组中未出现的最小正整数。要求时间复杂度为O(N)空间复杂度为O(1)。例如:arr=[-1,2,3,4]。返回1。arr=[1,2,3,4]。返回5。=========================================================分析:这道题要理解最小正整数的意思,最小的正整数就是1,所以考..._最小未出现的正整数

分治算法③-使用分治算法实现二分查找-python_python实现分治法二分搜索从控制台输入-程序员宅基地

文章浏览阅读1k次,点赞3次,收藏6次。如果 target >array[mid] ,令 left=middle+1,继续在数组的后半部分进行搜索;如果 target 判定 left_python实现分治法二分搜索从控制台输入

信息系统项目管理师必背核心考点(二十七)关键路径法(CPM)_关键路径的考点-程序员宅基地

文章浏览阅读1k次。科科过为您带来软考信息系统项目管理师核心重点考点(二十七)关键路径法(CPM),内含思维导图+真题_关键路径的考点

【氧化镓】Ga2O3 MOSFET器件的单SEB机制TCAD研究-程序员宅基地

文章浏览阅读636次,点赞8次,收藏9次。本文是一篇关于氧化镓(Ga2O3)金属氧化物半导体场效应晶体管(MOSFET)在单粒子烧毁(single event burnout, SEB)事件中的机制研究的文章。文章通过使用技术计算机辅助设计(TCAD)模拟来探究侧向耗尽型氧化镓MOSFET设备在SEB中的敏感区域和安全操作电压,并提出了辐射损伤机制。

随便推点

Tensorflow for Java + Spark-Scala分布式机器学习计算框架的应用实践(1)-程序员宅基地

文章浏览阅读810次,点赞10次,收藏12次。说句实话,如果一个打工人不想提升自己,那便没有工作的意义,毕竟大家也没有到养老的年龄。当你的技术在一步步贴近阿里p7水平的时候,毫无疑问你的薪资肯定会涨,同时你能学到更多更深的技术,交结到更厉害的大牛。推荐一份Java架构之路必备的学习笔记,内容相当全面!!!成年人的世界没有容易二字,前段时间刷抖音看到一个程序员连着加班两星期到半夜2点的视频。在这个行业若想要拿高薪除了提高硬实力别无他法。你知道吗?现在有的应届生实习薪资都已经赶超开发5年的程序员了,实习薪资26K,30K,你没有紧迫感吗?

机器学习中训练集、验证集和测试集的作用_机器学习验证集-程序员宅基地

文章浏览阅读6.9w次,点赞29次,收藏131次。通常,在训练有监督的机器学习模型的时候,会将数据划分为训练集、验证集合测试集,划分比例一般为0.6:0.2:0.2。对原始数据进行三个集合的划分,是为了能够选出效果(可以理解为准确率)最好的、泛化能力最佳的模型。训练集(Training set)作用是用来拟合模型,通过设置分类器的参数,训练分类模型。后续结合验证集作用时,会选出同一参数的不同取值,拟合出多个分类器。验证集(Cross Valida..._机器学习验证集

picrust2功能预测-从qiime2安装到数据分析_picrust2功能预测结果怎么看-程序员宅基地

文章浏览阅读1w次,点赞6次,收藏38次。记录一下跌跌撞撞地摸索过程picrust2功能预测参照公众号《宏基因组》刘永鑫的原创:《PICRUSt2:OTU或ASV等16S随便预测宏基因组且数据库增加10倍》https://blog.csdn.net/woodcorpse/article/details/89302863注:命令中 \为断行用,实际上输入命令要去掉,在输入文件路径时没有用此符号断行。虚拟机与qiime2安装参照公众..._picrust2功能预测结果怎么看

C# Winform 窗体美化(二、LayeredSkin 界面库)-程序员宅基地

文章浏览阅读3.6w次,点赞15次,收藏28次。二、LayeredSkin 窗口美化库概况这部分资源是 Winform 美化最多的了,效果还不错,使用时只需引入 LayeredSkin.dll - 696 KB 即可。网上能找到的最后 LayeredSkin 版本应该是 LayeredSkin Demo2014-12-10.zip,之后作者就整合成一个更加强大的商业版界面库(DSkin)了。效果图示例Demo_layeredskin

Kanzi软件开发与Android的关系_kanzi_on_android_3_9_4_setup-程序员宅基地

文章浏览阅读2.8k次,点赞3次,收藏6次。随着Android在汽车领域尤其是在车载娱乐系统方向使用的场景越来越多,Kanzi作为Android提高界面效果、提升界面开发效率的优质小伙伴,Android+Kanzi的组合被越来越多的整车厂和供应商采用。那么这对小伙伴是怎样打交道的呢?这一期就来给大家介绍下。一、Kanzi On Android原理我们先来了解下Kanzi On Android应用的基本知识。从Kanzi的kanzi_engine.jar源码中可以看到,KanziActivity继承自Android的Activity,渲染的Ka_kanzi_on_android_3_9_4_setup

【ChatGLM3】(7):在autodl上,使用A50显卡,使用LLaMa-Factory开源项目对ChatGLM3进行训练,非常方便的,也方便可以使用多个数据集_chatglm3 训练-程序员宅基地

文章浏览阅读3.4k次,点赞20次,收藏20次。工具还是非常的简单,可以把机构参数进行设置下。主要就是把参数可视化,同时把结果也可视化。非常的方便。进度也可以看到。_chatglm3 训练