C语言编程入门学习:求100~999的水仙花数

C语言是面向过程的,而C++是面向对象的

C和C++的区别:

C是一个结构化语言,它的重点在于算法和数据结构。C程序的设计首要考虑的是如何通过一个过程,对输入(或环境条件)进行运算处理得到输出(或实现过程(事务)控制)。

C++,首要考虑的是如何构造一个对象模型,让这个模型能够契合与之对应的问题域,这样就可以通过获取对象的状态信息得到输出或实现过程(事务)控制。 所以C与C++的最大区别在于它们的用于解决问题的思想方法不一样。之所以说C++比C更先进,是因为“ 设计这个概念已经被融入到C++之中 ”。

C与C++的最大区别:在于它们的用于解决问题的思想方法不一样。之所以说C++比C更先进,是因为“ 设计这个概念已经被融入到C++之中 ”,而就语言本身而言,在C中更多的是算法的概念。那么是不是C就不重要了,错!算法是程序设计的基础,好的设计如果没有好的算法,一样不行。而且,“C加上好的设计”也能写出非常好的东西。

水仙花数:是指一个n位的正整数(n>=3),它的每个数字的n次幂之和等于它本身。

小编推荐一个学C语言/C++的学习裙【 七三零,一三零,二二一 】,无论你是大牛还是小白,是想转行还是想入行都可以来了解一起进步一起学习!裙内有开发工具,很多干货和技术资料分享!

例如:

153=1*1*1+5*5*5+3*3*3 153为三位数,它的每个数字的三次方之和等于153。

要求:用C语言实现求出100~999之间的所有水仙花数。

要验证一个三位数是不是水仙花数很简单,只要把它的三个数字的三次幂加起来,看看是否等于它本身即可。所以问题的关键是如何用C语言得到一个三位数的三个数字。

我们知道任意一个三位数,都等于它的百位数乘以100,加上它的十位数乘以10,再加上它的个位数乘以1 。比如:567=5*100+6*10+7*1 。

根据这一特性,我们可以得出,一个三位数的百位数就等于该数除以100的整数部分(567除以100的整数部分为5,即它的百位数是5),而十位数等于该数减去百位数乘以100再除以10的整数部分((567-5*100)再除以10的整数部分等于6,即该数十位数是6),而个位数就等于该数减去百位数乘以100,再减去十位数乘以10(567-5*100-6*10=7,个位数为7)。

代码中关键部分做了详细的注释,代码中的i++等价于i=i+1。编写在visualstudio中的运行结果如下:

小编推荐一个学C语言/C++的学习裙【 七三零,一三零,二二一 】,无论你是大牛还是小白,是想转行还是想入行都可以来了解一起进步一起学习!裙内有开发工具,很多干货和技术资料分享!

我们可以得知,100~999之间的水仙花数为:153,370,371,407

如果要求1000~9999之间的水仙花数呢?原理是一样的,依次得到四位数的千位数、百位数、十位数和个位数即可。自己动手试一试吧!

这些是C/C++能做的

服务器开发工程师、人工智能、云计算工程师、信息安全(黑客反黑客)、大数据 、数据平台、嵌入式工程师、流媒体服务器、数据控解、图像处理、音频视频开发工程师、游戏服务器、分布式系统、游戏辅助等

推荐阅读更多精彩内容