数学实验水仙花数

合集下载

第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++ 编译器上的水仙花数实现代码
#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

数学实验水仙花数

数学实验水仙花数

Matla ‎b 基础知识‎1.目的:-熟悉MAT ‎LAB 的具‎体操作与操‎作键。

-掌握MAT ‎LAB 中的‎常用函数与‎变量、表达式的定‎义方法。

-熟悉MAT ‎LAB 常用‎的工作方式‎M 文件的编‎程工作方式‎- 掌握MAT ‎LAB 语言‎中的程序结‎构。

2.任务(1) 建立一个M ‎文件,求所有的水‎仙花数。

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

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

(2) 用subp ‎l ot 分别‎在不同的坐‎标系下画出‎下列四条曲‎线,为每幅图形‎加上标题:概率曲线2x y e -=四叶玫瑰曲‎线sin 2ρθ= 叶形线3233131t x t t y t ⎧=⎪⎪+⎨⎪=⎪+⎩正弦曲线sin y x =(1)运用sub ‎pl ot 函‎数可以将多‎个图画到一‎个平面上,subpl ‎o t (m,n,p ),其中,m 表示是图‎排成m 行,n 表示图排‎成n 列,也就是整个‎f igur ‎e 中有n 个‎图是排成一‎行的,一共m 行。

funct ‎i on sifut ‎ux=-5:0.01:5;y1=exp(-(x.^2));j=0:0.01:2*3.14;%概率曲线p=sin(2*j);%四叶玫瑰线‎t=0:0.01:100;x2=3*t./(1+t.^3)y2=3*t.^2./(1+t.^3)%叶形线a=-2*3.14:0.01:2*3.14;y3=sin(a);%正弦曲线subpl ‎o t(2, 2 ,1);plot(x,y1);subpl ‎o t(2, 2 ,2)polar ‎(j,p);subpl ‎o t(2, 2 ,3)plot(x2,y2);subpl‎o t(2, 2, 4)plot(a,y3);问题分析:首先要先设‎一个三位数‎s,然后提取它‎的百位数a‎,十位数b,个位数c,然后根据条‎件s=a^3+b^3+c^3,求出s。

水仙花数方程解法

水仙花数方程解法

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

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

为了解决水仙花数问题,我们可以使用方程式解决。

设所求数为n,则其个、十、百位数字分别为n1、n2、n3,则有:
n = n1^3 + n2^3 + n3^3
根据该方程,我们可以通过枚举每个三位数的每个位上的数字,计算并判断是否为水仙花数。

当然,这种方法比较费时费力。

我们也可以采用循环来解决这个问题。

首先,我们可以使用三个循环来枚举每个三位数的每个位上的数字,然后计算并判断是否为水仙花数。

具体做法如下:
for i in range(1, 10):
for j in range(0, 10):
for k in range(0, 10):
n = i * 100 + j * 10 + k
if n == i**3 + j**3 + k**3:
print(n)
该代码通过三个循环枚举每个三位数的每个位上的数字,计算并判断是否为水仙花数,若是则输出该数。

通过这种方式,我们可以快速地找到所有的水仙花数。

除了这种方法外,我们还可以使用其他途径来解决这个问题,例
如使用递归或数论方法等。

无论采用何种方法,解决水仙花数问题的本质都在于寻找这样一种规律或方法,以便从大量的数据中快速、准确地找到需要的结果。

n位数水仙花数c语言程序 -回复

n位数水仙花数c语言程序 -回复

n位数水仙花数c语言程序-回复题目:[n位数水仙花数C语言程序]:探索数学珍品之美引言:数学,这门古老而神秘的学科,令人又爱又恨。

它如同一位永远优雅的女士,引领我们探索一个又一个奇妙的领域。

今天,我们要一同探索一个数学珍品——n位数水仙花数,并通过C语言程序展现其迷人之处。

一、什么是水仙花数?水仙花数,取名自传说中仙子大门花园中绽放的娇艳花朵。

它是一个自恋的数学概念,它的每个位上的数字的立方和正好等于它本身。

简而言之,一个n位数水仙花数是一个n位的整数,每个位上的数字的立方和等于它本身。

二、C语言程序实现水仙花数探索之路经典的n位数水仙花数问题可以通过编写简洁优雅的C语言程序来解决。

以下是一个简单的实现示例:c#include <stdio.h>void narcissisticNumber(int n) {int start = pow(10, n - 1);int end = pow(10, n) - 1;for (int i = start; i <= end; i++) {int temp = i;int sum = 0;while (temp != 0) {int remainder = temp 10;sum += pow(remainder, n);temp /= 10;}if (sum == i) {printf("d\n", i);}}}int main() {int n;printf("请输入位数n:");scanf("d", &n);narcissisticNumber(n);return 0;}三、程序解析1. 首先,我们需要采用math.h头文件中的pow函数来求幂;2. 进入`narcissisticNumber`函数,我们通过计算出n位数的起始和结束数字,确定了取值的范围;3. 使用for循环遍历这个范围内的每个数;4. 对于每个数,我们通过temp变量将其保留下来,以便后续进行位数拆分;5. 在while循环中,我们将temp对10取模,获取其个位数,并将其立方的值加到sum变量上;6. 接下来,temp除以10,以便下一轮循环处理十位数;7. 当while循环结束时,我们检查sum是否等于初始的数i;8. 如果相等,我们打印出这个水仙花数i;9. 回到main函数,我们从用户输入中获取位数n;10. 调用narcissisticNumber函数,并将n作为参数传递给它;11. 执行完毕后,程序返回0。

水仙花

水仙花

1、水仙花数2、还贷问题3、调和级数4 、e的计算5、开普勒定律一、课程设计工作日自 2011年 12 月 26 日至 2011 年 12 月 30 日二、同组学生:无三、课程设计任务要求(包括课题来源、类型、目的和意义、基本要求、完成时间、主要参考资料等):题目:水仙花数若一个三位自然数的各位数字的立方和等于该数本身,则称该自然数为水仙花数,例如,153 = 13+ 53+ 33,所以153 就是一个水仙花数,编程计算出所有的水仙花数。

所用代码:for m=100:999m1=fix(m/100);%求m的百位数字m2=rem(fix(m/10),10);%求m的十位数字m3=rem(m,10);%求m的个位数字if m==m1*m1*m1+m2*m2*m2+m3*m3*m3disp(m)endend运行结果:run('D:\MA TLAB7\work\Untitled.m')15337037140711、一位使用工商银行国际信用卡的张姓用户, 2004年12月用工商银行的信用卡, 刷卡消费39771.52元,由于记错了还款额,他在还款日期(2005年1月25日) 到期之前, 分多次共计还款39771.28元, 少还了0.24元(事后才发现). 但就是这区区0.24元, 工商银行在他1月份的账单里记账两笔共计853元的利息. 张先生从网上查到账单后, 立即致电工商银行95588, 得到的答复是最新的国际信用卡章程已将原来只对逾期没有还的欠款部分收取利息改为对消费款全部从消费发生日起收取每日万分之五的利息.请问: 工商银行按多少天来收的利息?00(1)(1)nn n nA A r A A r =+=+1/001ln[/]ln[1]nn n A r A A A n r ⎛⎫=- ⎪⎝⎭=+n=fzero((1+0.0005)^n-40624.52/39771.52,43) ams= 42.46A1 调和级数 已知调和级数 +++++n131211是发散的。

水仙花数实验报告

水仙花数实验报告

水仙花数实验报告
《水仙花数实验报告》
水仙花数,又称为自恋数,是指一个三位数,其各个数字立方和等于该数本身。

水仙花数最著名的例子是153,因为1^3 + 5^3 + 3^3 = 1 + 125 + 27 = 153。

水仙花数在数学上有着特殊的意义,而我们今天将进行一项实验,来探究水仙
花数的特性。

实验方法:
1. 编写程序,计算出所有的水仙花数。

2. 分析水仙花数的规律和特性。

3. 尝试寻找更多的水仙花数,并验证其有效性。

实验结果:
通过编写程序,我们成功计算出了所有的水仙花数,它们分别是:153、370、371、407。

这些数都满足了水仙花数的定义,即其各个数字的立方和等于该数
本身。

通过分析这些数的规律,我们发现水仙花数都是三位数,并且数量并不多,这使得它们在数学上显得更加特殊和珍贵。

在继续寻找更多的水仙花数时,我们发现了一个有趣的现象:水仙花数只存在
于三位数中,而且数量非常有限。

这让我们不禁思考,水仙花数究竟有着怎样
的特殊性质,使得它们如此罕见。

结论:
通过本次实验,我们对水仙花数有了更深入的了解。

水仙花数不仅仅是一种数
学现象,更是一种奇妙的规律和特性的体现。

它们的罕见性和独特性,让人不
禁对数学世界的奥秘充满了好奇和探索的欲望。

希望通过今天的实验,我们能
够更加深入地理解和探究水仙花数,从而为数学领域的发展做出更多的贡献。

水仙花数

水仙花数

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

例如:153是一个“水仙花数”,因为153=1的三次方+5的三次方+3的三次方。

1.程序分析:利用for循环控制100-999个数,每个数分解出个位,十位,百位。

2.程序源代码:main(){int i,j,k,n; /*定义整型变量i,j,k,n*/printf("'water flower'number is:"); /*输出语句(没必要解释吧)*/for(n=100;n<1000;n++) /*循环语句,每次循环N都自加1*/ { i=n/100; /*求出N这个3位数的百位*/ j=(n-i*100)/10; /*求出N这个3位数的十位*/ k=n%10; /*%是求余运算符,比如7%4值为3,求出个位数*/ if(i*i*i+j*j*j+k*k*k==n) /*百位数,十位数,个位数的立方和*/ printf("%d\n",n); /*以十进制整数形式输出*/ }}"#include<stdio.h>#include<stdlib.h>void main(){int i=1;int psquare;while(1){psquare=i*i;i++;if (psquare >= 1 && psquare <= 1000){printf("%d\t",psquare);}else{break;}}printf("\n");return;}"1.首先理解什么什么是完全平方数一个数如果是另一个整数的完全平方,那么我们就称这个数为完全平方数,也叫做平方数。

例如:0,1,4,9,16,25,36,49,64,81,100,121,144,169,196,225,256,289,324,361,400,441,484,… 2.简单说假设X^2 = 10^3 ,Y^2 = 10^32,还有个未知变量V 只要V^2是在区间[X^2,Y^2]那么V^2就是我们要求的完全平方数3.1000开算数平方根是31.6222.。

所谓水仙花数是指满足如下条件的三位数:个位数的立方、

所谓水仙花数是指满足如下条件的三位数:个位数的立方、
设计算法细化判断一个三位数是否为水仙花的关键是求出其个位数十位数和百位数
问题水仙花数问题。统计所有水仙花数的数量,并打印。所谓水仙花数是指满足如下条件的三位数:个位数的立方、十位数的立方和百位数的立方和等于其自身。例如407为一水仙花数, 。
分析找出水仙花数需要使用循环,从100循环到999。
数据要求
问题中的常量:

问题的输入:
无。
问题的输出:
所有的水仙花数。
设计初始算法
1从100循环到999。判断某个数是否是水仙花数。
算法细化
判断一个三位数是否为水仙花的关键是,求出其个位数、十位数和百位数。
1)百位数计算:a=i/100,求此数被100整除后的商。
2)十位数计算:b=i/10-a*10,求此数被100整除后的余数。
void main()
{
unsigned int a,b,c, i,n;
n=0;
for(i=100;i<1000;i++)
{
a=i/100;
b=i/10-a*10;
c=i%10;
if((a*a*a{
printf("%5d",i);
n++;
}
}
}
测试输出所有的水仙花数,此处略。
3)个位数计算:c=i%10,求此数被10整除后的余数。
例如,123的各位数字的计算如下:
1)百位数: 123/100=1;
2)十位数: 123/10-1*10=2;
3)个位数: 123%10=3。
接下来判断 的结果是否等于i.
流程图
实现
#include "stdio.h"

水仙花数实验报告

水仙花数实验报告

一、实验目的1. 了解水仙花数的概念及其特性。

2. 掌握C语言编程解决实际问题的方法。

3. 提高逻辑思维和编程能力。

二、实验原理水仙花数(Narcissistic number)又称为自恋数、自幂数、阿姆斯壮数(Armstrong number),它是指一个n位数,其各位数字的n次方和等于该数本身。

例如:153是一个三位数,其各位数字的立方和等于153,即1^3 + 5^3 + 3^3 = 153。

三、实验内容1. 编写C语言程序,找出1000以内的所有水仙花数。

2. 分析程序运行过程,总结水仙花数的规律。

四、实验步骤1. 创建一个新的C语言项目,命名为“水仙花数探究”。

2. 在项目中创建一个名为“main.c”的源文件。

3. 在“main.c”文件中编写以下代码:```c#include <stdio.h>#include <math.h>int main() {int num, hun, ten, ge, sum;for (num = 100; num < 1000; num++) {hun = num / 100; // 百位数ten = (num % 100) / 10; // 十位数ge = num % 10; // 个位数if (pow(hun, 3) + pow(ten, 3) + pow(ge, 3) == num) {printf("%d\n", num);}}return 0;}```4. 编译并运行程序,观察输出结果。

五、实验结果与分析1. 运行程序后,输出以下水仙花数:1533703714072. 分析程序运行过程,总结水仙花数的规律:(1)水仙花数一定是一个三位数。

(2)对于任意一个三位数,可以通过拆分百位、十位和个位数字,计算其各位数字的立方和,然后判断是否等于原数。

(3)在1000以内的所有水仙花数中,个位数字只能是0、1、5、6、7、8、9。

【日记】趣味数学 日记一则550字

【日记】趣味数学 日记一则550字

【日记】趣味数学日记一则550字
今天上了一节趣味数学课,老师带我们做了一些有趣的数学题目。

学过之后,我发现,原来数学也可以这么有趣!
我们首先做了一个叫“水仙花数”的游戏。

所谓水仙花数,就是一个三位数,它的各
个位上的数字的立方和正好等于它本身。

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

我们要做的,就是找出所有的水仙花数。

这个看起来很简单,但其
实需要耐心和一些计算。

最后,我成功找出了所有水仙花数,感觉很有成就感!
接下来,老师还给我们出了一个叫“奇怪的数字”的谜题。

这个谜题的规则是这样的:我们要找一个三位数,它的个位数字比十位和百位数字的和还要大,而且每个数字不能重复,问这个数是多少。

我一开始听了这个题目,还有点懵,但经过一番思考,我终于找到
了答案:$871$。

这道谜题让我再次感受到了数学的神奇之处。

最后,老师给我们讲解了一种叫“九宫格游戏”的玩法。

这个游戏需要我们填上1到
9的数字,使得每一行、每一列和每一个九宫格内的数字都是1到9。

原来这个游戏叫数独,一直以来我都看不懂,现在终于可以自己玩了。

在老师的指导下,我成功完成了九宫格游戏,非常兴奋。

通过今天的课程,我深刻地感受到了数学的魅力。

它不仅仅是一堆枯燥的公式和计算,更是一种可以激发思维和创造力的学科。

我很庆幸能够有一个喜欢上数学的机会,希望能
够继续学下去,探索数学的奥秘。

七种方法求水仙花数

七种方法求水仙花数

并行计算与多核多线程技术课程报告班级学号姓名目录1.水仙花数的并行算法设计与实现 (7)1.1 .1功能描述1.1.2 解决方案1.2算法设计 (7)1.2.1 串行算法设计1.2.2并行算法设计1.3 基于OpenMP的并行算法实现 (8)1.3.1 代码及注释(变量名名字首字母开头)1.3.2 执行结果截图(体现串行时间、并行时间和加速比)1.3.3 遇到的问题及解决方案1.4 基于MPI的并行算法实现 (11)1.4.1 代码及注释(变量名名字首字母开头)1.4.2 执行结果截图(体现串行时间、并行时间和加速比)1.4.3 遇到的问题及解决方案1.5 基于Java(Runnable)的并行算法实现 (13)1.5.1 代码及注释(变量名名字首字母开头)1.5.2 执行结果截图(体现串行时间、并行时间和加速比)1.5.3 遇到的问题及解决方案1.6 基于Windows(.NET)的并行算法实现 (20)1.6.1 代码及注释(变量名名字首字母开头)1.6.2 执行结果截图(体现串行时间、并行时间和加速比)1.6.3 遇到的问题及解决方案2. 理论基础 (22)2.1 并行计算机体系结构、并行计算模型、并行算法的概念2.2并行计算机体系结构、并行计算模型、并行算法的关系2.3实例说明并行计算机体系结构、并行计算模型、并行算法的关系评价实践效果(正确度/加速比)理论基础难度工作量独立性认证结果1.水仙花数的并行算法设计与实现1.1 .1功能描述水仙花数又称阿姆斯特朗数。

是指一种三位数,其各个数之立方和等于该数本身。

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

1.1.2 解决方案并行思想:并行计算的原理就是把一个任务或者作业分配到多个处理器上并发执行。

这样一来可以大大提高计算的效率。

在本次课题中,要实现水仙花数的并行计算输出,就是把制定范围内的数用多个处理器进行计算,从而得到水仙花数的并行输出。

c 水仙花原理

c 水仙花原理

c 水仙花原理
水仙花原理是指一种简单但强大的数学原理,它可以用来解决许多复杂的问题。

这个原理的核心思想是将一个复杂的问题分解成若干个更小、更简单的问题,然后逐个解决这些小问题,最终得到整个问题的答案。

水仙花原理的名字来源于一个著名的数学问题:如果有一个正整数n,它的各位数字的立方和等于它本身,那么这个数就被称为水仙花数。

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

水仙花原理可以应用于许多领域,例如数学、计算机科学、物理学等。

在数学中,水仙花原理可以用来解决数论问题、代数问题和几何问题等。

在计算机科学中,水仙花原理可以用来设计算法、优化程序和解决复杂的计算问题。

水仙花原理是一种非常有用的数学原理,它可以帮助我们将复杂的问题分解成更小、更简单的问题,并逐个解决这些问题,最终得到整个问题的答案。

对“水仙花数”的研究

对“水仙花数”的研究
%求水仙花数matlab代码3. clear all; clc; n=input('n='); %输入自然数m的位数n. k=fix((n+2)/3); %确定搜索自然数m的0至9这10个数码的个数的终止值,加快搜索速度. for o=0:k %搜索n位自然数m中数码0的个数. for p=0:k %搜索n位自然数m中数码1的个数. for q=0:k %搜索n位自然数m中数码2的个数.以下依此类推. for r=0:k for s=0:k for t=0:k for u=0:k for v=0:k for w=0:k for x=0:k %搜索n位自然数m中数码9的个数. if o+p+q+r+s+t+u+v+w+x==n %0至9这10个数码的个数的和. m=o*0^n+p*1^n+q*2^n+r*3^n+s*4^n+t*5^n+u*6^n+v*7^n+w*8^n+x*9^n; %0至9这10个数码的n次 幂的和. if m<=10^n-1 & m>=10^(n-1) %n位自然数的范围. y=int2str(m)-'0'; %分离自然数m的各位数码. if sum(y.^n)==m %自然数m为水仙花数. disp(m) %输出水仙花数. end
%求水仙花数matlab代码1. clear all; clc; n=input('n='); %输入自然数的位数. for m=10^(n-1):10^n-1 %输入位数相同的自然数.
m1=rem(fix(m/10^(n-1)),10); %确定自然数的首位数码. m2=rem(fix(m/10^(n-2)),10); %确定自然数的第二位数码,以下类推. m3=rem(fix(m/10^(n-3)),10); m4=rem(fix(m/10^(n-4)),10); m5=rem(fix(m/10^(n-5)),10); m6=rem(fix(m/10^(n-6)),10); m7=rem(fix(m/10^(n-7)),10); m8=rem(fix(m/10^(n-8)),10); m9=rem(fix(m/10^(n-9)),10); if (m1)^n+(m2)^n+(m3)^n+(m4)^n+ (m5)^n+(m6)^n+(m7)^n+(m8)^n+(m9)^n ==m %判断水仙花数

从一道课本例题对水仙花数的探究

从一道课本例题对水仙花数的探究

从一道课本例题对水仙花数的探究200023 上海市五爱高级中学 章 文 新教材高二数学第一学期(上海教育出版社)第十章算法初步例8是这样的:设abc表示百位、十位、个位分别为a,b,c的三位数,试设计算法,求所有满足等式abc =a3+b3+c3的三位数abc.这道关于“水仙花数”的例题体现了新教材的人文时代特征.在数学中存在一类三位数,具有很奇妙的性质:它的每位数字的三次方的和等于这个三位数本身,例如13 +53+33=153,我们称像153这种数为三位水仙花数.然而,找出100到999间全部的水仙花数并不容易,需要一个一个去试.但利用计算机就很容易解决这类问题和课本上只给出了算法框图,根据算法,我们用C语言PASCAL语言编写一个求解的程序,其内容如下:◆C 语言的“水仙花数”实现代码:#include<stdio.h>intmain(void){inta,b,c;for(a=1;a≤9;a++)for(b=0,b≤9;b++)for(c=0;c≤9;c++)if(100∗a+10∗b+c==a∗a∗a+b∗b∗b+c∗c∗c) printf(“%d%d%d\n”,a,b,c);return0;}◆PASCAL语言的“水仙花数”实现代码: programshuixianhuashu;vara,b,c:integer;beginfora:=1to9doforb:=0to9doforc:=0to9doifa∗a∗∗a+b∗b∗b+c∗c∗c=100∗a+10∗b+ cthenwriteln(100∗a+10∗b+c);end.利用程序可以找到三位水仙花数有4个,分别为153,370,371和407.实际上,最早发现三位水仙花数特征的是英国大数学家哈代(G.H.Hardy,1877-1947),后来有人推广为:如果一个n位正整数等于它的n个数字的n次方和,则称这个数为n位水仙花数(又称为n位n次幂回归数).容易得到:一位水仙花数:1,2,3,4,5,6,7,8,9;二位水仙花数不存在,实际上,假设x,y是自然数且都小于10,而且x不等于0,则两位水仙花数应该满足:10x+y=x2+y2,解关于y的方程可求出y=若是要满足y是自然数,开平方的结果应该是个奇数,即1+40x-4x2应该是个奇数平方数,由二次函数的知识可知1+40x-4x2的最大值是101,当令其分别等于1,3,5,7,9的平方时,发现无自然数解.利用程序还可以找到四位水仙花数有3个,分别为1634,8208,9474.那么,对于什么样的自然数n是水仙花数?这样的n是有限个还是无穷多个?解决这个问题,我们不妨设An是n位的水仙花数,即A n=a1a2…a n=a n1+a n2+…+a n (其中0≤a1,a2,…a n≤9,且全为自然数,a1≠0),从而10n-1≤A n≤n·9n,即n必须满足10n-1≤n·9n也就是(109)n≤10n,(1)随着自然数n的不断增大,由此(109)n为10n的高阶无穷大量,很快就会使得(1)式不成立,因此,满足(1)的n不能无限增大,即n只能取有限多个.进一步的计算表明:(109)60≈556.4798×10×60=600,(109)61≈618.3109>10×61=610,对于n≥61,便有(109)n>10n,由此可知,使(1)式成立的自然数n≤60.故这种水仙花数最多是60位数.借助于计算机可以得到最大的水仙花数是39位数,它们是: 1151322190187639925650955973971522401和115132219018763992565095597973971522400.(收稿日期:20100210)55·数学探究窑 (2010年第5期·高中版) . All Rights Reserved.。

水仙花数实验报告

水仙花数实验报告

水仙花数实验报告水仙花数实验报告水仙花数是一个非常有趣的数学问题,它引发了我对数字的好奇心。

在这个实验报告中,我将介绍水仙花数的概念、实验的过程以及我的发现。

一、水仙花数的概念水仙花数是指一个三位数,它的各个位上的数字的立方和等于该数本身。

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

水仙花数是自恋数的一种特殊情况,自恋数是指一个n位数,它的各个位上的数字的n次方和等于该数本身。

二、实验过程为了验证水仙花数的存在,我进行了以下实验:1. 编写程序:我使用了Python编程语言编写了一个简单的程序,用于计算三位数中的水仙花数。

2. 运行程序:我运行了程序,并观察输出结果。

3. 分析结果:我将程序输出的结果与水仙花数的定义进行对比,以确定程序的准确性。

三、实验结果通过运行程序,我找到了所有的三位水仙花数。

它们分别是153、370、371和407。

这些数字符合水仙花数的定义,因为它们的各个位上的数字的立方和等于该数本身。

这个发现让我感到非常兴奋,因为这意味着水仙花数确实存在。

四、进一步探索在实验过程中,我产生了一些进一步的思考和问题。

首先,我想知道水仙花数是否只存在于三位数中,还是在其他位数中也存在。

其次,我想知道是否存在无穷多个水仙花数。

为了回答这些问题,我需要进行更深入的研究和实验。

五、结论通过这次实验,我验证了水仙花数的存在,并找到了所有的三位水仙花数。

水仙花数是一个有趣的数学问题,它展示了数字的奇妙性质。

我希望通过进一步的研究和实验,能够探索更多关于水仙花数的奥秘。

总结起来,水仙花数实验让我对数字产生了浓厚的兴趣。

通过编写程序和观察实验结果,我验证了水仙花数的存在,并开始思考更深入的问题。

这个实验不仅增加了我的数学知识,还培养了我的逻辑思维和解决问题的能力。

我相信,在未来的学习和探索中,我会继续发现数字的魅力。

求两个正整数之间的水仙花数

求两个正整数之间的水仙花数
问题描述?输入2?个正整数m?和n1mn1000输出mn之间的所有水仙花数??水仙花数是指各位数字的立方和等于其自身的数?要求定义并调用函数isnumber判断number的各位数字之立方和是否等于其自身??输入形式?输入2个正整数m?和n1mn1000?输入输出样例1下划线部分表示输入?input?m
}
{
if(is(i)==1)
{
printf("%d",i);
printf("\n");
}
}
return 0;
}
int is(int n)
{
int a,b,c,p;
a=n/100;
b=(n/10)%10;
c=n%10;
if(n==a*a*a+b*b*b+c*c*c)
p=1;
else
p=0;
return p;
【输入形式】
输入2个正整数m和n(1≤m,n≤1000)
【输入输出样例1】(下划线部分表示输入)
Input m: 100
Input n: 400
153
370
371ห้องสมุดไป่ตู้
【样例说明】
输入提示符后要加一个空格。例如“Input m:”,其中“:”后要加一个且只能一个空格。
英文字母区分大小写。必须严格按样例输入输出。*/
#include<stdio.h>
int is(int n);
int main(void)
{
int m,n,i;
printf("Input m: ");
scanf("%d",&m);
printf("Input n: ");

实训教案1 水仙花数 教案

实训教案1 水仙花数 教案

2、实训步骤: (教师活动、学生活动、时间分配等) 1) 、教师讲解实训的任务和目的,以及实训过程要注意的安全事项。 (5 分钟) 2) 、教师讲解本次实训所用到的知识点,如子函数的编写方法,主函数调用子 教师讲解 函数的方法等。 (10 分钟) 3) 、学生开机进入 VC++6.0 开发环境,创建一个 Win32 Console Application 平 学生实训 台的空工程,并在该工程中创建一个 C++Source File。 (5 分钟) 4) 、编写程序的代码,编译调试程序,输出结果。在此过程中教师巡回指导。 个别指导相 结合 (55 分钟) 5) 、师生总结,学生写实训报告,并上交。 (15 分钟)
if(n==i*i*i+j*j*j+k*k*k) cout <<n<<" = "<<i<<"^3 + "<<j<<"^3 +"<<k<<"^3"<<endl; }
return 0; }
程序的执行结果
【课堂小结】本节课主要讲解了 for 语句的一般格式和应用,通过实例深刻讲解了 for 循环的执行流程和应用,特别注意在使用 for 循环时如何避免死循环的出现。 关键知识:for 语句的使用 【课后作业】打印九九乘法表 【教后记】
3、教学分析:(实训期间预计困难及解决方案)
预计困难:如何分解一个 3 位数的百位、十位和个位 解决方案:通过具体的讲解来解决
教师讲解
4、实训考核:(方法选择与成果评价、等级标准等) 结果较好 在实训内容正确的基础上,所用时间越短,成绩越高。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Matlab 基础知识
1.目的:
-
熟悉MATLAB 的具体操作与操作键。

-
掌握MATLAB 中的常用函数与变量、表达式的定义方法。

-
熟悉MATLAB 常用的工作方式M 文件的编程工作方式
- 掌握MATLAB 语言中的程序结构。

2.任务
(1) 建立一个M 文件,求所有的水仙花数。

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

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

(2) 用subplot 分别在不同的坐标系下画出下列四条曲线,为每幅图形加上标题:
概率曲线2
x y e -=
四叶玫瑰曲线sin 2ρθ
= 叶形线3233131t x t t y t ⎧=⎪⎪+⎨⎪=⎪+⎩
正弦曲线sin y x =
(1)运用subplot 函数可以将多个图画到一个平面上,subplot (m,n,p ),其中,m 表示是图排成m 行,n 表示图排成n 列,也就是整个figure 中有n 个图是排成一行的,一共m 行。

function sifutu
x=-5:0.01:5;
y1=exp(-(x.^2));
j=0:0.01:2*3.14;%概率曲线
p=sin(2*j);%四叶玫瑰线
t=0:0.01:100;
x2=3*t./(1+t.^3)
y2=3*t.^2./(1+t.^3)%叶形线
a=-2*3.14:0.01:2*3.14;
y3=sin(a);%正弦曲线
subplot(2, 2 ,1);
plot(x,y1);
subplot(2, 2 ,2)
polar(j,p);
subplot(2, 2 ,3)
plot(x2,y2);
subplot(2, 2, 4)
plot(a,y3);
问题分析:首先要先设一个三位数s,然后提取它的百位数a,十位数b,个位数c,然后根据条件s=a^3+b^3+c^3,求出s。

function shui
for s=100:999;%定义s为三位数
a=fix(s/100);%提取百位数
b=fix(s/10-10*a);%提取十位数
c=s-100*a-10*b;%提取个位数
if s==a.^3+b.^3+c.^3% s=a^3+b^3+c^3
disp(s)%显示出s
end
end
然后运行的出水仙花数位:
153
370
371
407
3.实验过程
(1).利用公式211
71
51
31
14++-+-= π
计算π的值。

分析:设置一个变量sum 来做累加器,累加数的特征是分子为1,分母为奇数,而且正负项相隔,最后再乘以四。

程序:
sum=0;
for i=1:11
sum=sum+(-1)^(1+i)/(2*i-1);
end
sum*4
运行结果:
(2).编辑函数计算1!+3!+5!+7!+…+25!的值。

分析:所求为一和式,而且每个加数是奇数的阶乘,故需设置一个m 变量,保存之前的阶乘数,设置j 变量,使其加1乘以m 的值赋给m ,设置i 变量,控制得到的阶乘数为奇数阶乘。

最后用sum 变量将和式保存累加。

程序:
sum=0;
i=1;
while i<26
m=1;
j=1;
while j<=i
m=m*j;
j=j+1;
end
sum=sum+m; i=i+2;
end
sum
运行结果:。

相关文档
最新文档