水仙花数

合集下载

第21课计算水仙花数

第21课计算水仙花数

的个位数字与其十位数字交换后得到一个新数,它与原数相加,结 果恰好是一个自然数的平方,这样的两位数有多少?请将下面代码中的划线处 填写完整:
Private Sub Command1_Click() Dim s1 As Integer,s2 as Integer Dim a As Integer, b As Integer List1.Clear For a = 1 To 9 For b = a To 9 ' 假设b≥a,避免重复 s1=10*a+b
3.寻找勾股数。“勾股数”指满足勾股定理关系的 一组整数,也就是直角三角形三边长恰好都取 整数值的特殊情况,3,4,5就是一组勾股数大 家都知道32+42=52, 输出50以内能够组成勾股 数。
4.“百钱买百鸡”问题。中国古代数学家张丘建在 《张丘建算经》中提出一个问题。“鸡翁一, 值钱五,鸡母一,值钱三,鸡雏三,值钱一。 百钱买百鸡。问鸡翁、母、雏各几何?”。
授课人:杨鹏
控件属性值的设置 参考如下表
高中信息技术必修2:算法与程序设计
对象名 Form1 List1 (用绘制而成) Command1
属性名 Caption
list Caption
属性值 水仙花数
空白 计算
授课人:杨鹏
高中信息技术必修2:算法与程序设计
②分析算法流程,编写代码;
Private Sub Command1_Click()
第21课 计算水仙花数
授课人:杨鹏
高中信息技术必修2:算法与程序设计
1.寻找水仙花数。水仙花数是指这样的三位整数, 其各个位上的数之立方和恰好等于该数自己, 例如371,是水仙花数,因为371=33+73+13,设 计一个算法寻找出所有的水仙花数。

c语言水仙花数的解题思路

c语言水仙花数的解题思路

c语言水仙花数的解题思路【最新版】目录一、水仙花数的定义与特点二、c 语言编程实现水仙花数的思路1.分析输入的三位数的个位、十位、百位数字2.计算各位数字的立方和3.比较立方和与原数的大小,判断是否为水仙花数三、具体编程实现步骤1.导入所需头文件2.定义变量并初始化3.利用循环读取输入数据4.分析输入数据的百位、十位、个位数字5.计算各位数字的立方和6.比较立方和与原数的大小,输出结果四、总结正文一、水仙花数的定义与特点水仙花数是指一个三位数,它的各位数字的立方和等于其本身。

例如:153 是一个水仙花数,因为 1^3 + 5^3 + 3^3 = 153。

水仙花数这一概念源于数学,并在计算机编程领域得到了广泛应用。

二、c 语言编程实现水仙花数的思路要解决这个问题,我们可以采用以下步骤:1.分析输入的三位数的个位、十位、百位数字2.计算各位数字的立方和3.比较立方和与原数的大小,判断是否为水仙花数三、具体编程实现步骤1.导入所需头文件```c#include <stdio.h>```2.定义变量并初始化```cint main() {int num, originalNum;scanf("%d", &num);originalNum = num;}```3.利用循环读取输入数据```cwhile (num!= 0) {// 处理输入数据的百位、十位、个位数字}```4.分析输入数据的百位、十位、个位数字```cint hundreds = num / 100;int tens = (num % 100) / 10;int ones = num % 10;```5.计算各位数字的立方和```cint sum = ones * ones * ones + tens * tens * tens + hundreds * hundreds * hundreds;```6.比较立方和与原数的大小,输出结果```cif (sum == originalNum) {printf("%d", originalNum);}```四、总结通过以上步骤,我们可以用 c 语言编写一个程序来找出给定范围内的所有水仙花数。

水仙花数有哪些

水仙花数有哪些

水仙花数有哪些水仙花数是指一个三位数,其个位、十位和百位数字的立方和等于该数本身的数。

水仙花数是一个非常有趣的数学现象,因为它们既具有一定的规律性,又具有一定的特殊性。

下面我们将详细介绍水仙花数的定义、特征以及一些实例。

首先,我们来定义水仙花数。

一个三位数可以表示为abc,其中a、b和c分别代表百位、十位和个位上的数字。

如果abc满足以下条件:a³ + b³ + c³ = abc,则abc就是一个水仙花数。

那么水仙花数有哪些呢?根据上述定义,我们可以通过枚举法找到所有的水仙花数。

首先,百位数字a的范围是1到9,因为0不满足三位数的条件。

然后,十位和个位数字b和c的范围都是0到9。

所以我们需要遍历所有的三位数,将满足条件的数列出来。

经过计算,我们找到了如下所有的水仙花数:153、370、371、407。

这四个数都满足a³ + b³ + c³ = abc的条件。

接下来,我们来研究水仙花数的特征。

首先,水仙花数是一个三位数,所以它是一个有限集合。

其次,水仙花数具有一定的规律性,即满足a³ + b³ + c³ = abc。

这个规律可以用来判断一个三位数是否为水仙花数。

对于每一个三位数abc,我们可以按照上述规则计算其立方和。

然后将计算结果与abc进行比较,如果二者相等,则该数为水仙花数;如果不相等,则不是水仙花数。

通过观察水仙花数的特征,我们可以发现一些有趣的现象。

首先,水仙花数是对称的,即百位数字与个位数字相同。

其次,水仙花数是非常罕见的,只有四个三位数满足条件。

这也反映了水仙花数的特殊性。

水仙花数的发现和研究对于我们理解数学规律、培养数学思维都具有积极的意义。

通过研究水仙花数,我们可以锻炼我们的观察力和逻辑思维能力。

此外,水仙花数还是一种数学趣味活动,可以增加我们学习数学的兴趣。

总结一下,水仙花数是指一个三位数,其个位、十位和百位数字的立方和等于该数本身的数。

打印出100~1000的水仙花数

打印出100~1000的水仙花数
算出100999以内的水仙花数水仙花数narcissisticnumber也被称为超完全数字不变数pluperfectdigitalinvariantppdi自恋数自幂数阿姆斯壮数或阿姆斯特朗数armstrongnumber水仙花数是指一个3位数它的每个位上的数字的3次幂之和等于它本身例如
打印出 100~1000的水仙花数
""" #方法一
for change in range(100,1000): hund = change // 100 #得到百位 deca = change % 100 // 10 #得到十位 unit = change % 10 # 得到个位 if change == hund ** 3 + deca ** 3 + unit ** 3 : print(change,end=' ')
#方法二 for cc in range(100,1000):
str_cc = str(cc) #转换为字符串 hund = int(str_cc[0]) # 百 deca = int(str_cc[1]) # 十 unit = int(str_cc[2]) # 个 if cc == hund ** 3 + deca ** 3 + unit ** 3 :
print(cc,end=' ')
#方法三 for hund in range(1,10):
for deca in range(1, 10): for unit in range(1, 10): narc = hund * 100 + deca * 10 + unit if narc == hund ** 3 + deca ** 3 + unit ** 3 : print(narc,end=' ')

生活中的数学

生活中的数学

生活中的数学生活离不开数学,数学离不开生活,数学知识源于生活而高于生活,最终服务于生活。

的确,学数学就是为了能在实际生活中应用,生活是丰富多彩的,细心观察,我们就会发现生活中有许多有趣的数学问题,下面我们来看看存在于我们身边的有趣的数学。

1.水仙花数水仙花数是指一个n 位数( n≥3 ),它的每个位上的数字的n 次幂之和等于它本身。

(例如:1^3 + 5^3 + 3^3 = 153)。

水仙花数- 简介水仙花数在数论中,水仙花数是指这样一个数,其各个数之立方和等于该数。

例如:13+53+33=153。

十进制中的这样的数有:0、1、153、370、371、407,……(OEIS中的数列A005188),十进制的水仙花数共有88个,最大的是115,132,219,018,763,992,565,095,597,973,971,522,401共有39位数2.概率在实际生活中的应用在实际生活中,我们会碰上很多关于概率的问题。

包括很多人喜欢玩的“双色球”,也A735就是35选7,就是数学在其中应用的最大的体现。

35个球,要在其中选出7个,就有N==1129719360种不同的方案。

而在这些方案中也只有一个才能中奖。

所以想要中奖,不会数学中的概率是不可能做到的。

3.球赛积分问题足球比赛的计分规则为:胜一场得3分,平一场得1分,输一场得0分。

一支足球队在某个赛季中共需要比赛14场,现已比赛了8场,输了1场,得17分,请问:(1)前18场比赛中,这支足球队共胜了多少场?(2)这支球队打满14场比赛,最高能得多少分?(3)通过对比赛情况的分析,这支球队打满14场比赛,得分不低于29分,就可以达到预期的目标,请你分析一下,在后面的6场比赛中,这支球队至少要胜多少场,才能达到预期目标?解析:﹙1﹚设这支球队在前8场比赛中,打平x场,打胜﹙8-1-x﹚场,则x+3﹙7-x﹚=17,解得x=2,所以胜5场。

﹙2﹚这支球队打满14场比赛最高能得到17+3﹙14-8﹚=35分。

水仙花数

水仙花数

水仙花数
水仙花数是指一个n 位数( n≥3 ),它的每个位上的数字的n 次幂之和等于它本身。

(例如:1^3 + 5^3 + 3^3 = 153)。

水仙花数- 简介
水仙花数
在数论中,水仙花数是指这样一个数,其各个数之立方和等于该数。

例如:1^3+5^3+3^3=153。

水仙花数只是自幂数的一种,严格来说三位数的自幂数才成为水仙花数。

[1]
附:其他位数的自幂数名字
一位自幂数:独身数
两位自幂数:没有
三位自幂数:水仙花数
四位自幂数:四叶玫瑰数
五位自幂数:五角星数
六位自幂数:六合数
七位自幂数:北斗七星数
八位自幂数:八仙数
九位自幂数:九九重阳数
十位自幂数:十全十美数
水仙花数- 常见水仙花数
水仙花数又称阿姆斯特朗数。

三位的水仙花数共有4个:153,370,371,407;
水仙花数四位的水仙花数共有3个:1634,8208,9474;
五位的水仙花数共有3个:54748,92727,93084;
六位的水仙花数只有1个:548834;
七位的水仙花数共有4个:1741725,4210818,9800817,9926315;八位的水仙花数共有3个:24678050,24678051,88593477
……
……。

c语言水仙花数的解题思路

c语言水仙花数的解题思路

c语言水仙花数的解题思路
摘要:
I.引言
- 介绍水仙花数的概念
- 说明用C 语言解决水仙花数的意义
II.水仙花数的性质
- 定义水仙花数
- 分析水仙花数的性质
- 总结水仙花数的特征
III.C 语言解决水仙花数的思路
- 算法一:暴力枚举法
- 算法二:数学归纳法
- 算法三:动态规划法
- 比较三种算法的优劣
IV.C 语言实现
- 实现算法一
- 实现算法二
- 实现算法三
- 总结实现过程
V.结论
- 总结C 语言解决水仙花数的方法
- 展望水仙花数问题的未来研究方向
正文:
I.引言
水仙花数,是指一个三位数,其各位数字的立方和等于该数本身。

水仙花数

水仙花数

水仙花数水仙花什么是水仙花数春天是鲜花的季节,水仙花就是其中最迷人的代表,数学上有个水仙花数,他是这样定义的:水仙花数是指一个 n 位数( n≥3 ),它的每个位上的数字的n 次幂之和等于它本身。

(例如:1^3 + 5^3 + 3^3 = 153)常见水仙花数三位的水仙花数共有4个:153,370,371,407;四位的水仙花数共有3个:1634,8208,9474;五位的水仙花数共有3个:54748,92727,93084;六位的水仙花数只有1个:548834;七位的水仙花数共有4个:1741725,4210818,9800817,9926315;八位的水仙花数共有3个:24678050,24678051,88593477…………使用高精度计算,可以得到超过INT类型上限的水仙花数:5: 930845: 927275: 547486: 5488347: 98008177: 42108187: 17417257: 99263158: 246780508: 246780518: 885934779: 1465112089: 9129851539: 4723359759: 53449483610: 467930777411: 3216404965011: 4002839422511: 4267829060311: 4938855060611: 3216404965111: 9420459191411: 4470863567911: 8269391657814: 2811644033596716: 433828176939137016: 433828176939137117: 3587569906225003517: 2189714258761207519: 328958298444318703219: 492927388592808882619: 449812879116462486920: 6310542598859969391621: 44917739914603869730721: 12846864304373139125223: 2790786500997705256781423: 3545259010403169193594323: 2787969489305407447140523: 2188769684112291628885824: 17408800593806529302372224: 188451485447897896036875(为环保起见,24位以上的水仙花数略)理论上,最大的水仙花数不超过34位。

c语言水仙花数统计(函数)

c语言水仙花数统计(函数)

c语言水仙花数统计(函数)1.引言1.1 概述概述部分:水仙花数是指一个三位数,其各个位上数字的立方和等于该数本身的数。

例如,153是一个水仙花数,因为1的立方加上5的立方加上3的立方等于153。

在这篇长文中,我们将讨论如何在C语言中判断一个数是否为水仙花数,以及为什么统计C语言中的水仙花数是非常重要的。

通过学习判断水仙花数的方法,我们可以提高我们的编程技巧和逻辑思维能力。

最后,我们将总结本文的主要内容和结论。

在接下来的正文部分,我们将详细介绍水仙花数的定义以及在C语言中判断水仙花数的具体方法。

希望本文能给读者带来启发和帮助,进而深入理解C语言和编程中的一些基本概念。

1.2 文章结构文章结构部分的内容可以描述本文的组织方式和各个章节的内容概述。

可以参考以下内容:本文按照以下结构进行组织和阐述。

首先,在引言部分(第1章)中,我们会对水仙花数统计的背景和重要性进行概述,并明确本文的目的。

接下来,在正文部分(第2章)中,我们将深入讨论水仙花数的定义和在C 语言中判断水仙花数的方法。

具体来说,我们将从数学角度解释水仙花数的概念,并分享一种基于C语言的判断方法。

在结论部分(第3章)中,我们将探讨统计C语言中的水仙花数的重要性,并对全文进行总结。

通过以上结构安排,本文将系统地介绍水仙花数及其在C语言中的判断方法,旨在提供给读者一个全面且深入的认识。

接下来,让我们深入了解水仙花数的定义(第2.1节)。

1.3 目的本文的目的是通过分析和介绍C语言中水仙花数的判断方法,探讨水仙花数在编程中的重要性和实际应用。

通过理解水仙花数的概念和判断方法,读者可以加深对C语言编程的理解和应用,同时也能够提高编程效率和代码质量。

具体来说,本文的目的包括以下几点:1.介绍水仙花数的定义:首先,我们将详细介绍水仙花数的定义和特征。

水仙花数是一个三位数,它的每个位上的数字的立方和等于其本身。

例如,153是一个水仙花数,因为1³+ 5³+ 3³= 153。

水仙花数是什么意思

水仙花数是什么意思

水仙花数是什么意思水仙花数是指满足某种条件的三位数,又被称为是自幂数或是可爱数。

它的特点是,各位数字的立方和等于这个数本身,即abc=a^3+b^3+c^3。

所以水仙花数,被古人赋予了神秘的含义,比如“佛教看破,妙用无穷”,描绘了佛祖修炼可以达到最伟大的境界。

水仙花数有几个特点,被归结为一种特殊的数学概念。

首先,它的各位数字的立方和与本身完全相等。

其次,它的所有位的和等于一个完全平方数。

最后,在0-999之间,只有153个水仙花数,比如153 = 1^3 + 5^3 + 3^3,370 = 3^3 + 7^3 + 0^3,407 = 4^3 + 0^3 + 7^3等。

水仙花数是中国数学史上非常了不起的成就,博大精深的计算领域,有着悠久的历史。

早在史前,中国农民就由于耕作与生活的需要而发明出具有规律性质的数,比如完全数、水仙花数、普勒数,等等。

传统的中国文化视水仙花数为一种神奇的数字,说它在古代更是有着神秘的含义,比如它代表了佛的智慧,也可以象征佛的慈悲,可以将水仙花数视为宇宙的奇迹之一。

现今,水仙花数已经被用来作为数学的研究课题,比如研究其特性和规律,以及利用它来展开心理、解密、谜语等研究。

比如在数学竞赛中,一般会考查水仙花数的相关知识,考查学生是否能够找出水仙花数。

水仙花数也被用来描述许多精细美丽的花园建筑,它丰富了故事情节,使故事更有趣、更有意义。

比如有一个古老的传说,说把一片水仙花分成三部分,每一部分都有三个心脏,像一个可爱的三部分的心一样,所以它更加受欢迎,更受到欢迎。

水仙花数的存在,是中国数学研究的一个重要组成部分,它不仅可以让我们更加深入地认识数学,也可以丰富我们的故事情节,更受到欢迎。

让我们一起去欣赏这个神奇而又可爱的水仙花数吧!。

c语言求水仙花数的算法do while

c语言求水仙花数的算法do while

C语言求水仙花数的算法do while1. 什么是水仙花数水仙花数是指一个三位数,它的各位数字的立方和等于它本身。

153就是一个水仙花数,因为1的立方加上5的立方加上3的立方等于153。

2. 水仙花数的求解算法为了在C语言中求解水仙花数,我们可以使用do-while循环来遍历所有的三位数,然后判断是否为水仙花数。

3. C语言实现水仙花数的算法下面是使用do-while循环实现水仙花数算法的C语言代码:```c#include <stdio.h>int m本人n() {int num, temp, rem本人nder, result = 0;num = 100;do {temp = num;while (temp != 0) {rem本人nder = temp 10;result += rem本人nder * rem本人nder * rem本人nder; temp /= 10;}if (result == num) {printf("d 是水仙花数\n", num);}result = 0;num++;} while (num < 1000);return 0;}```在这段代码中,我们使用了一个do-while循环来遍历所有的三位数,然后对每个数字进行水仙花数的判断。

在内部的while循环中,我们对数字进行取余和除以10的操作,然后计算各位数字的立方和。

如果立方和等于原数字,则输出该数字为水仙花数。

4. 运行结果当我们运行这段代码时,将会输出所有的水仙花数,结果如下:```153 是水仙花数370 是水仙花数371 是水仙花数407 是水仙花数```这证明我们的算法是正确的,能够顺利地求解水仙花数。

5. 总结通过上面的示例,我们使用了C语言的do-while循环来实现求解水仙花数的算法。

通过该算法,我们可以轻松地找到所有的水仙花数,并且可以应用在更复杂的问题中。

c语言水仙花数的解题思路

c语言水仙花数的解题思路

c语言水仙花数的解题思路摘要:I.引言- 介绍水仙花数的概念- 说明解题思路的背景和意义II.水仙花数的定义和性质- 定义水仙花数- 阐述水仙花数的性质III.解题思路- 分析水仙花数的组成- 设计计算方案- 编写C 语言程序实现计算IV.程序实现- 详细说明程序的实现过程- 给出完整的C 语言代码V.总结- 总结解题思路和程序实现- 提出优化方案和展望正文:I.引言水仙花数,也被称为阿姆斯特朗数,是指一个三位数,其各位数字的立方和等于该数本身。

例如,153 是一个水仙花数,因为1^3 + 5^3 + 3^3 = 153。

水仙花数是一种特殊的三位数,具有很高的数学价值和趣味性。

在本文中,我们将介绍如何使用C 语言来求解水仙花数的问题。

II.水仙花数的定义和性质水仙花数是一种特殊的三位数,其各位数字的立方和等于该数本身。

例如,153 是一个水仙花数,因为1^3 + 5^3 + 3^3 = 153。

根据这个定义,我们可以知道,水仙花数的每一位数字都是不同的。

此外,由于0 的立方等于0,所以水仙花数的百位数字不能为0。

根据这些性质,我们可以进一步分析水仙花数的组成。

III.解题思路要解决水仙花数的问题,我们需要设计一个计算方案。

首先,我们需要遍历所有可能的三位数,然后计算每个数的各位数字的立方和。

如果各位数字的立方和等于该数本身,那么这个数就是一个水仙花数。

为了提高计算效率,我们可以先判断每个数的百位数字是否为0,如果为0,则可以直接跳过。

此外,我们还可以使用C 语言的特性,如循环和条件语句,来简化程序的实现。

IV.程序实现下面是使用C 语言实现求解水仙花数的程序:```c#include <stdio.h>int main() {int m, n, i, sum;scanf("%d %d", &m, &n);for (i = m; i <= n; i++) {if (i / 100 == 0) {continue;}sum = i * i * i + i / 10 * i / 10 * i / 10 + i % 10 * i % 10 * i % 10;if (sum == i) {printf("%d", i);}}return 0;}```程序首先从用户输入中读取两个整数m 和n,表示需要查找的范围。

python123题库3位水仙花数计算

python123题库3位水仙花数计算

python123题库3位水仙花数计算标题:Python123题库3位水仙花数计算引言概述:水仙花数是指一个三位数,其各个数字的立方和等于该数本身。

在Python编程中,我们可以通过编写代码来计算3位水仙花数。

本文将详细阐述如何使用Python编程语言计算3位水仙花数。

正文内容:1. 水仙花数的定义1.1 水仙花数的概念水仙花数是指一个三位数,其各个数字的立方和等于该数本身。

例如,153是一个水仙花数,因为1^3 + 5^3 + 3^3 = 153。

1.2 水仙花数的特点水仙花数的特点是它的个位、十位和百位数字的立方和等于该数本身。

2. Python编程计算水仙花数2.1 使用循环结构通过使用循环结构,我们可以遍历所有的三位数,然后判断其是否为水仙花数。

2.2 判断水仙花数的条件在判断一个三位数是否为水仙花数时,我们需要将该数拆分为个位、十位和百位数字,并计算其立方和。

如果立方和等于该数本身,则说明该数是水仙花数。

2.3 编写Python代码实现计算我们可以使用Python的循环结构和条件判断语句来编写代码实现计算水仙花数的功能。

具体步骤包括遍历所有的三位数,拆分数字并计算立方和,判断是否为水仙花数,并输出结果。

3. 总结:通过本文的介绍,我们了解了水仙花数的定义和特点,并学习了如何使用Python编程语言计算3位水仙花数。

通过循环结构和条件判断语句,我们可以编写代码来实现水仙花数的计算功能。

掌握这一技能可以帮助我们更好地理解循环和条件判断的应用,并提升我们的编程能力。

总结分为三个方面:3.1 水仙花数的定义和特点3.2 Python编程计算水仙花数的步骤3.3 学习计算水仙花数的意义和应用价值总结:本文详细介绍了水仙花数的定义和特点,并通过Python编程语言实现了3位水仙花数的计算。

掌握这一技能有助于提升编程能力和理解循环和条件判断的应用。

希望读者通过本文的学习,能够更好地掌握Python编程,并能够应用于实际问题中。

案例十_打印出所有的_水仙花数_所谓_水仙花数_是指一个..

案例十_打印出所有的_水仙花数_所谓_水仙花数_是指一个..

案例十:打印出所有的“水仙花数”。

所谓“水仙花数”是指一个3位数,其各位数字的立方和等于该数本身。

例如,153是一个“水仙花数”,因为153=13
+53
+33。

1.程序分析:
将每个三位数的每一位分离出来,求出各位数字的立方和,若与此三位数相等,则此三位数为“水仙花数”。

关键的问题是如何分离出三位数的每一位,可以这样考虑:若要分离个位上的数字,只需将此三位数和10进行求余即可;若要分离十位上的数字,只需先将此三位数除以10,然后再和10进行求余即可;若要分离百位上的数字,只需将此三位数除以100即可。

2.程序流程图: 3.程序N-S 图:
4.程序源代码: main ( )
{
int i,j,k,n;
程序流程图
程序N-S 图
printf(““水仙花数”是:”);
for (n=100;n<1000;n++)
{
i=n/100;
j=n/10-i*10;
k=n%10;
if (n==i*i*i+j*j*j+k*k*k)
printf(“%4d”,n);
}
printf(“\n”);
}
5.程序运行结果:
“水仙花数“是:153 370 371 407。

水仙花数的鉴别实验总结

水仙花数的鉴别实验总结

水仙花数的鉴别实验总结
1引信
水仙花数Q是指一个三位数,它的每个位上的数字的3次幂之和等于它本身。

例如:1^3+343+5^3=153.通过对水仙花数的判断,有助于我们进一步掌握条件判断,熟练对条件判断的运用。

2问题
从键盘输入一个三位数,判断该数是不是水仙花数。

3方法
判断是否为水仙花数,需要找到这个数的百位、十位和个位,对应的循环条件如下:
(1)将n整除以100,得出n在百位上的数字。

(2)将(n-i乘以100)整除以10(或将n先整除以10再对10求模n/10%10),得出n在十位上的数字。

(3)将n对10取余,得出n在个位上的数字。

(4)求得这三个数字的立方和是否与其本身相等,若相等,则该数为水仙花数。

4实验结果与讨论
通过实验、实践等证明提出的方法是有效的,是能够解决开头提出的问题。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
C++ 编译器上的水仙花数实现代码
#include<iostream> using namespace std; int main() {int a,q,w,e; for(a=100;a<1000;++a) {q=a/100; w=(a-q*100)/10; e=(a-q*100-w*10); if(a==q*q*q+w*w*w+e*e*e) cout<<a<<"是水仙花数"<<endl;}; return 0; }
求取方法(非高精度)
以下为在各种编程语言中实现求取水仙花数的方法(非高精度)。
PHP “水仙花数”实现代码:
<?php for($i=100;$i<1000;$i++){ $a=intval($i/100); $b=intval($i/10)%10; $c=$i%10; if(pow($a,3)+pow($b,3)+pow($c,3)==$i){ echo $i."\t"; } } ?>
水仙花数
水仙花
什么是水仙花数
春天是鲜花的季节,水仙花就是其中最迷人的代表,数学上有个水仙花数, 他是这样定义的:水仙花数是指一个 n 位数 ( n≥3 ),它的每个位上的数字的 n 次幂之和等于它本身。(例如:1^3 + 5^3 + 3^3 = 153)
常见水仙花数
三位的水仙花数共有 4 个:153,370,371,407; 四位的水仙花数共有 3 个:1634,8208,9474; 五位的水仙花数共有 3 个:54748,92727,93084; 六位的水仙花数只有 1 个:548834; 七位的水仙花数共有 4 个:1741725,4210818,9800817,9926315; 八位的水仙花数共有 3 个:24678050,24678051,88593477 …… …… 使用高精度计算,可以得到超过 INT 类型上限的水仙花数: 5: 93084 5: 92727 5: 54748 6: 548834 7: 9800817 7: 4210818 7: 1741725 7: 9926315 8: 24678050
} if($sum==$i){//如果符合定义,将该数字添加到输出队列 $out.=$i.'<br/>'; } } //输出队列 echo $out; //echo "<br/>".(microtime()-$begin); //输出脚本耗时,当脚本开 始时间开启时有效 } else{ //$this->error('错误的位数'); //提示错误的位数 } }
} if (p==q) { printf("%d 为水仙花数",q); }else { printf("%d 该数不是水仙花数",q); } }
PASCAL 实现代码:
program shuixianhuashu; var a,b,c:integer; begin for a:=1 to 9 do for =0 to 9 do for c:=0 to 9 do if a*a*a+b*b*b+c*c*c=100*a+10*b+c then writeln(100*a+10*b+c); end. 或: program sxh; var a,b,c,d:integer; begin for a:=100 to 999 do begin b:=a mod 10; c:=a mod 100 div 10; d:=a div 100; if b*b*b+c*c*c+d*d*d=a then writeln(a); end; end. 或 program abcd; var a,b,c,i,t:integer; begin i:=100; repeat a:=trunc(i/100); b:=trunc(i/10)-a*10;
javascript +html 实现可变位数的运算:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" <head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
pyhon 中实现的代码
for i in range(1,10): for j in range(0,10): for k in range(0,10): if i*100+j*10+k==i*i*i+j*j*j+k*k*k: print i*100+j*10+k
Java 中实现的代码
public class shuixianhuashu { public static void main(String[] args) { for(int i=100; i<1000; i++){ int a = i/100; int b = i/10%10; int c = i%10; if(Math.pow(a,3)+Math.pow(b,3)+Math.pow(c,3)==i) System.out.println(i+"是水仙花数"); } } }
C 语言的"水仙花数"实现代码:
#include <stdio.h> #include<math.h> int main (void) { long n,p; long c,a,j,s[30],i,q; p=0; a=10; scanf("%d",&n); q=n; for (i=1;c>10 ;++i) { c=n/a; a=a*10; }printf("i=%d,a=%d \n",i,a); for (j=1;a>=10 ;++j) { s[j]=n/(a/10); n=n-s[j]*(a/10); a=a/10; printf("j=%d,a=%d\n",j,a); } for (j=1;j<=i ;j++) { p+=pow(s[j],i); printf("p=%d,i=%d\n",p,i);
8: 24678051 8: 88593477 9: 146511208 9: 912985153 9: 472335975 9: 534494836 10: 4679307774 11: 32164049650 11: 40028394225 11: 42678290603 11: 49388550606 11: 32164049651 11: 94204591914 11: 44708635679 11: 82693916578 14: 28116440335967 16: 4338281769391370 16: 4338281769391371 17: 35875699062250035 17: 21897142587612075 19: 3289582984443187032 19: 4929273885928088826 19: 4498128791164624869 20: 63105425988599693916 21: 449177399146038697307 21: 128468643043731391252 23: 27907865009977052567814 23: 35452590104031691935943 23: 27879694893054074471405 23: 21887696841122916288858 24: 174088005938065293023722 24: 188451485447897896036875 (为环保起见,24 位以上的水仙花数略) 理论上,最大的水仙花数不超过 34 位。
c:=i-trunc(i/10)*10; t:=a*a*a+b*b*b+c*c*c; if i=t then writeln(i,'=',a,'^3+',b,'^3+',c,'^3'); i:=i+1 until i>999 end. Visual Basic 的"水仙花数"实现代码:
FORTRAN 的"水仙花数"实现代码:
C# ASP.N 中的实现代码
for (int i = 100; i < 1000; i++) { int bai = 0; int shi = 0; int ge = 0; int baiyushu = 0; bai = i / 100; baiyushu = i % 100; shi = baiyushu / 10; ge = baiyushu % 10; if (i == bai * bai * bai + shi * shi * shi + ge * ge * ge) { Response.Write("水仙花数:" + i + "<br>"); } }
<title>无标题文档</title> <script type="text/javascript"> function fun(){ //取得参量位数 var valnum=parseInt(document.frm.input.value); //求得符合参量位数的最大值和最小值 var highnum=Math.pow(10,valnum)-1; var lownum=Math.pow(10,valnum-1); //输出队列的组成部分 var output="共有个数:",res_str=""; //a 为 i 分解为数组的下脚值,num 为符合规则的水仙花的个数 var a=0,num=0; //遍历所有符合参量位数的数 for(i=lownum;i<=highnum;i++){ //res 为水仙花数规则值,即 n 位的数的每位数的 n 次幂的和,预置为 0 var res=0; //分解出当前 i 的每位数并存如数组 var new_i=i.toString().split(""); for(a=0;a<=valnum-1;a++){ //求得水仙花数规则值 res=Math.pow(parseInt(new_i[a]),valnum)+res; } //判断符合水仙花数的个数,如符合则将水仙花数并入输出队列 if(res==i){ num++; res_str=res_str+"<br>"+res; } } //输出队列 if(valnum<3){output="你输入了无效位数!";} else{output=output+num+res_str;} //输出 document.getElementById("divnum").innerHTML=output; }
相关文档
最新文档