数学实验水仙花数

合集下载

第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.。

  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
运行结果:。

相关文档
最新文档