pythonwhile水仙花数的编程

合集下载

Python程序设计 第4章 循环结构程序设计(第7次课)2

Python程序设计 第4章 循环结构程序设计(第7次课)2
print score[i],
sum += score[i]
#循环体——对列表元素求和
aver = sum / 8.0 #循环之后,求平均值 print '\naver = ', aver
计算机编程导论
Copyright © SWFU-CISD, 2012. All rights reserved.
Copyright © SWFU-CISD, 2012. All rights reserved. 1-11
为 i 赋初值 1 False
判断 i <= 100? True
判断 i 是否能被 7 整除但不能被 5 整 除 ?
False
True 输出 i
i 自增 1
结束 图 4-10 整除问题的框图
计算机编程导论

1 1 2 1 2 3 1 2 3 4 1 2 n 1 2 3 3 5 3 5 7 3 5 7 9 3 5 (2n 1)
Copyright © SWFU-CISD, 2012. All rights reserved.
1-10
Copyright © SWFU-CISD, 2012. All rights reserved.
计算机编程导论
【例4-8】求1 ~ 100之间能被7整除,但不能同 时被5整除的所有整数 。
开始
【分析】 (1)本题需要对1 ~ 100 范围内的所有数一一进 行判断。 (2)本题的循环次数确 定是100次。 (3)在每次循环过程中 需要用 if 语句进行条件 判断。因此本题是循环 嵌套选择的结构。
1-19
利用for语句实现双层循环嵌套
循环的嵌套是指在一个循环中又包含另外一个 完整的循环,即循环体中又包含循环语句。 while循环和for循环可以相互嵌套。 循环嵌套的执行过程是:一次外循环对应着完 整的一轮内循环。

python软件编程等级考试(三级)编程实操题02word练习

python软件编程等级考试(三级)编程实操题02word练习

python软件编程等级考试(三级)编程实操题02word练习一、选择题1.计算机能够直接识别和执行的语言是( )A.机器语言B.汇编语言C.Python 语言D.C语言2.下列哪个语句在Python中是非法的?()A.x = y = z = 1 B.x = (y = z + 1)C.x, y = y, x D.x += y3.下列选项都是属于高级语言的是( )A.汇编语言、机器语言B.汇编语言、Basic语言C.Basic语言、Python语言D.机器语言、Python语言4.Python程序文件的扩展名是()。

A..python B..pyt C..pt D..py 5.Python使用函数()接收用输入的数据A.accept() B.input() C.readline() D.print()6.以下Python程序段执行后,输出结果为()。

A.m不能被3整除B.29不能被3整除C.29能被3整除D.m能被3整除7.已知字符串变量x的值是“H”,字符“A”的ASCII值是65,则python表达式chr(ord(x)+2)的值是()A.‘I’B.‘J’C.73 D.748.利用Python求100以内所有能被3整除的正整数,代码如下:则下列程序第3行的横线应该填()A.i=i*3 B.i=i%3 C.i%3==0 D.i/3==19.以下哪种语言属于高级程序设计语言()①python ②c++ ③visual basic ④javaA.①②③B.②③C.②③④D.①②③④10.Python语言自带的IDLE环境的退出命令是()A.Esc B.close C.回车键D.exit11.下列属于计算机编程语言的有()①Python ②Visual Basic ③Java ④C++⑤CPUA.①②④⑤B.②③④⑤C.①②③④D.①③④12.在Python中,已知a=3,b=5,运行下列程序段后,a和b的值为a = a * bb = a // ba = a // bA.a=3 b=5 B.a=15 b=3 C.a=5 b=5 D.a=5 b=313.在python中运行print(“3+6”)的结果是()。

试题青少年编程能力等级测评考生∶Python编程二级2程序填空阅读填空程序试题

试题青少年编程能力等级测评考生∶Python编程二级2程序填空阅读填空程序试题

试题青少年编程能力等级测评考生∶Python编程二级2程序填空阅读填空程序试题一、程序填空1.完善程序实现以下功能并保存。

输入一元二次方程的系数a,b,c的值,求解一元二次方程 ax2+bx+c=0(a≠0)#请不要更改源程序的结构,删除原题里的①、②。

填写正确的代码,使程序完善import matha=float(input("请输入方程系数a(!=0):"))b=float(input("请输入方程系数b:"))c=float(input("请输入方程系数c:"))delta=b*b-4*a*cif delta>________:x1=(-b+math.sqrt(delta))/(2*a)x2=(-b-math.sqrt(delta))/(2*a)print("方程有两个不同的解",x1,x2)elif delta==0:x1=________print("方程有两个相同的解",x1)else:print("方程无解")input("运行完毕,请按回车键退出...")2.阅读程序。

阅读求水仙花数的代码并回答问题。

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

例如:153是一个“水仙花数”,因为153=13+53+33,请计算并输出所有三位数的水仙花数。

for n in range(100,1000):i=n//100j=n//100%10k=n%10if n==i*i*i+j*j*j+k*k*k:print(n)(1)//的符号作用是 _____ 。

(2)%的符号作用是 _____ 。

(3)==的符号作用是 _____ 。

(4)在代码中,变量i表示的是三位数中的 ______ 位。

(5)在代码中,变量j 表示的是三位数中的 ______ 位。

试题青少年编程等级考试∶Python编程二级试卷1

试题青少年编程等级考试∶Python编程二级试卷1

试题青少年编程等级考试∶Python编程二级试卷1一、选择题1.关于下列Python程序段的说法正确的是()k=1while 1:k+=1A.存在语法错误,不能执行B.执行1次C.执行无限次D.执行k次2.计算机能直接接收和执行的程序设计语言为()A.Visual Basic语言B.Python语言C.机器语言D.自然语言3.有如下python程序段n=int (input("请输入n值: "))x=n ; y=0if x>0:y=y+1elif x<0:y=y-1print (y)执行上述语句,下列说法不正确...的是()A.若输入-1,则输出y值为-1 B.若输入0,则输出y值为-1C.若输入1,则输出y值为1 D.若输入2,则输出y值为14.Python语句中以r或R开头的字符串表示原始字符串,则print(r"\nGood")的运行结果是()A.新行和字符串Good B.r"\nGood" C.\nGoodD.字符r、新行和字符串Good5.检测输入的四位整数abcd是否满足下述关系:(ab+cd)(ab+cd)=abcd。

实现上述功能的python程序代码如下:k=int(input(“输入一个四位数:”))①y=k%100if ② :print(“符合”)else:print(“不符合”)划线处应填入的代码是()A.①x=k/100 ②(x+y)*2!=k B.①x=k//100 ②(x+y)*2==kC.①x=k/100 ②(x+y)**2!=k D.①x=k//100 ②(x+y)**2==k 6.Python语句 "ab"+"c"*2 的运行结果是()A.abc2 B.abcabc C.abcc D.ababcc7.以下Python中变量的命名正确的是()A.1a=4B.print=5C._A=2D.a+b=38.下列选项中,可作为Python变量名的是()A.int B.Abc C.float D.Complex 9.在python中运行print(“3+6”)的结果是()。

计算机二级Python真题及答案解析4精品程序填空阅读填空程序试题

计算机二级Python真题及答案解析4精品程序填空阅读填空程序试题

计算机二级Python真题及答案解析4精品程序填空阅读填空程序试题一、程序填空1.(最大公约数)用辗转相除法求两个正整数的最大公约数。

代码如下:def gcd (m,n):r=while r!=0:m=nn=returna=int(input(‘请输入a的值:’))b=int(input(‘请输入b的值:’))print(‘最大公约数是:' )填空:________ ________ ________ ________ ________2.程序编写求1+22+32+……+1002的结果____________________________________________________________________________________________________________________________input(“运行完毕,请按回车键退出...”)3.阅读程序。

分析条件语句的代码并回答问题。

(1)如果不能使用int()函数,那么变量s的类型将会变成 ______ 。

(2)如果你的期末成绩是85,你得到的评价将会是____________ 。

(3)如果你的期末成绩是55,你得到的评价将会是____________ 。

(4)如果你得到的评价是“还可以再提升”,你的期末成绩应该在_____和______之间。

(5)“程序中出现的所有else都可以替换为elif,程序效果一样”,这种说法是____(填“对”或“错”)的。

4.完善程序。

以下是计算S=1+6+11+…+101的程序代码。

请你在处填写正确的语句。

s=0k=1while(k<=101)__s=0k=1while(k<101):k=k+5s=s+kprint(s+1)5.编写程序。

信息社团的三个同学和Bruce一起做游戏,他们的游戏规则很简单,从1开始依次报数,每当一个数能被7整除或者十位是7就要跳过这个数,现在给出一个数N,请输入从1到N(包含N)中要跳过的数。

python入门精选题(计算机二级考试可用)

python入门精选题(计算机二级考试可用)

Python入门精选30题1、输入一个三位整数,判断这个数是不是“水仙花数”;所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数,例如:153=1^3n=eval(input())i=na=0while i:a=a+(i%10)**3i=i//10if a==n:print("yes")else:print("no")2. 随机产生一个两位数的数字,然后用户输入一个两位数的数字,如果用户输入的数字与随机产生的数字完全相同(包括顺序),则输出奖励100 分;如果用户输入的数字与随机产生的数字相同(不包括顺序),则输出奖励50 分;如果用户输入的数字与随机产生的数字有一位数相同,则奖励10 分,如果都不相同,则输入没有奖励。

import random Array a=random.randint(10,99)b=eval(input())a1=a%10a2=a//10b1=b%10b2=b//10if a==b:print('100')elif a1==b2 and a2==b1:print('50')elif a1==b1 or a2==b2 or a1==b2 or a2==b1:print('10')else:print('0')3.在金字塔模式中显示数字(编写一个嵌套for 循环来显示下面的输出):a=eval(input())for i in range(a):if i==0:考点:循环结构、制表for j in range(a-i):print(' ',end='\t')print('1',end='')for j in range(a-i):print(' ',end='\t')print()elif i!=0:for k in range(a-i):print(' ',end='\t')for l in range(0,i+1):a1=2**lprint(a1,end='\t’)for y in range(i-1,-1,-1):a1=2**yprint(a1,end='\t')for x in range(a-i):print(' ',end='\t')print()4、如果一个素数可以写成2^ p -1的形式,其中p为一个正整数,那么这个数被称作梅森素数。

【编程】计算机二级Python真题及答案解析5word练习

【编程】计算机二级Python真题及答案解析5word练习

【编程】计算机二级Python真题及答案解析5word练习一、选择题1.Python语句中以r或R开头的字符串表示原始字符串,则print(r"\nGood")的运行结果是()A.新行和字符串Good B.r"\nGood" C.\nGoodD.字符r、新行和字符串Good2.( ) 不是程序设计高级语言。

A.PythonB.BasicC.C++D.伪代码3.Python文件的后缀名是()A.pdf B.do C.pass D.py4.Python中,赋值语句,“c=c-b”等价于()A.b-=cB.c-b=cC.c-=bD.c==c-b5.下列Python表达式的值不是2的是()。

A.3%2 B.5//2 C.1*2 D.1+3/36.下列选项都是属于高级语言的是( )A.汇编语言、机器语言B.汇编语言、Basic语言C.Basic语言、Python语言D.机器语言、Python语言7.在python中,想输出一行文字,要用到的函数是()。

A.input()B.int()C.print()D.float()8.下列软件中,可作为服务器操作系统的是()A.Windows B.Python C.excel D.access 9.Python语言自带的IDLE环境的退出命令是()A.Esc B.close C.回车键D.exit10.在数学中,我们一般使用“=“表示相等关系,那么“=”在Python语言中的写法为()A.= B.== C.:= D.<>11.下列选项中,不能作为python程序变量名的是()A.abc B.abc123 C.123abc D.abc__12312.下列序列拼接错误的是()A.list = [ None ] * 4B.msg = “Python”, ”语言”C.tup = “/”.join( ( “123”, ”234” ) )D.set = { 1, 2, 3 } + { 4, 5, 6 }13.运行下列 Python程序,结果正确是()a=32b=14c=a//bprint(c)A.2.2 B.2 C.“2”D.414.如下Python程序段x = 0while x < 50:x = (x + 2) * (x + 3)运行后,x的值为()A.0 B.72 C.50 D.16815.有关循环结构的说法不正确的是()。

在各种编程语言中实现求取水仙花数的方法(非高精度)

在各种编程语言中实现求取水仙花数的方法(非高精度)

在各种编程语⾔中实现求取⽔仙花数的⽅法(⾮⾼精度)在各种编程语⾔中实现求取⽔仙花数的⽅法(⾮⾼精度)。

PHP “⽔仙花数”实现代码<?phpfor ($i=100;$i<1000;$i++) {$m = floor($i/100); //分解出百位$n = floor($i/10)%10;//分解出⼗位$k = floor($i%10);//分解出个位if ($i == ($m*$m*$m+$n*$n*$n+$k*$k*$k)) {echo $i."<br/>";}}>PHP 所有位数理论输出/** * ⽔仙花数为不⼩于3位的数字,每位数字的N次幂的和等于该数字.N为该数字的位数* @name daffodilsNum ⽔仙花数* @param $places ⽔仙花位数 >=3*/function daffodilsNum($places=3){// (0); //设置超时为不限制,如果提⽰30秒超时,可以开启本控制//$begin= (); // 开始时间//定义位数if(!defined('PLACES')) define('PLACES',is_numeric($places)?$places:3);if(PLACES>=3){$min=pow(10,PLACES-1); //选数范围起始位置$max=pow(10,PLACES); //选数范围结束位置//开始选数for($i=$min,$out='';$i<$max;$i++){$sum=0; //当前选数下各个幂值的和$arr= ($i); //以字符串⽅式分割选数for($j=0;$j<PLACES;$j++){//对每个数字作幂操作并累加$sum+=pow($arr[$j],PLACES);if($sum>$i){//如果当前累加已⼤于选数,则跳出循环break;}}if($sum==$i){//如果符合定义,将该数字添加到输出队列$out.=$i.'<br/>';}}//输出队列echo $out;//echo "<br/>".(microtime()-$begin); //输出耗时,当脚本开始时间开启时有效}else{//$this->error('错误的位数'); //提⽰错误的位数}}语⾔的"⽔仙花数"实现代码#include <stdio.h>int main(){int i,d1,hub,transit;for(i=100;i<=9999;++i){for(hub=0 ,transit=i,d1=123; transit!=0;){d1=(transit%10)*(transit%10)*(transit%10);*/hub=hub+d1;transit=transit/10;}if(hub==i) printf("⽔仙花数%d\n",i);}return 0;}PASCAL 实现代码program shuixianhuashu;vara,b,c:integer;beginfor a:=1 to 9 dofor b:=0 to 9 dofor c:=0 to 9 doif 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;beginfor a:=100 to 999 do beginb:=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;vara,b,c,i,t:integer;begini:=100;repeata:=trunc(i/100);b:=trunc(i/10)-a*10;c:=i-trunc(i/10)*10;t:=a*a*a+b*b*b+c*c*c;if i=tthen writeln(i,'=',a,'^3+',b,'^3+',c,'^3');i:=i+1until i>999end.Visual Basic 的"⽔仙花数"实现代码Private Sub Command2_Click()Dim i As Integer, a As Integer, b As Integer, c As IntegerFor i = 100 To 999 Step 1a = i \ 100b = (i - 100 * a) \ 10c = i - 100 * a - 10 * bIf a ^ 3 + b ^ 3 + c ^ 3 = i Then Print iNext iEnd SubFORTRAN 的"⽔仙花数"实现代码WRITE(*,30)DO 10 K=100,999IA=K/100IB=MOD(K,100)/10WRITE(*,20)K, IA,IB,IC10 CONTINUE20 FORMAT(5X,4I4)30 FORMAT(5X,18HN=I**3+J**3+K**3) STOPENDC++ 编译器上的⽔仙花数实现代码#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;}python 中实现的代码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+kJava 中实现的代码public class NumberOfDaffodils {public static void main(String[] args) {List<Long> numbers = new ArrayList<Long>(); for(long i = 100; i < Long.MAX_VALUE ; i++){ if(match(i)){numbers.add(i);}}System.out.println(numbers);}private static boolean match(long in) {//统计位数int count = (in+"").length();//记录每位数字long temp = 0;//辗转取余的保存数long num = in;//求和数long sum = 0;for(int i = count ; i > 0 ; i--){temp = num/(long)Math.pow(10,i-1);num = num%(long)Math.pow(10,i-1);sum+=Math.pow(temp,count);}return in == sum;}}C# ASP.N 中的实现代码for (int i = 100; i < 1000; i++){int bai = 0;int shi = 0;bai = i / 100;baiyushu = i % 100;shi = baiyushu / 10;ge = baiyushu % 10;if (i == bai * bai * bai + shi * shi * shi + ge * ge * ge){Console.WriteLine("⽔仙花数:" + i + "<br>");}}补充C#⽔仙花数实现代码(不定位数)/// <summary>/// 判断⼀个数是否是⽔仙花数/// </summary>/// <param name="num">要判断的数</param>/// <returns>判断结果:true-是,false-否</returns>bool isWaterFlower(int num){if (num <= 0){return false;}int temp = num;//将要判断的数值各位上的数字拆开放在集合中ArrayList list = new ArrayList();while (temp > 0){list.Add(temp % 10);temp /= 10;}//判断各位上的数字位数次⽅之后是否等于要判断是数,是的话则为⽔仙花数int sum = 0;foreach (int i in list){int mul = 1;for (int j = 0; j < list.Count; j++){mul *= i;}sum += mul;}return sum == num;}javascript +html 实现可变位数的运算<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312" /><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次幂的和,预置为0var res=0;//分解出当前i的每位数并存如//求得⽔仙花数值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;}</script></head><body><form name="frm"><label>请输⼊⽔仙花的位数(N>=3):</label><input type="text" name="input" value=""> <input value="运算" type="button" onclick="fun()" /></form><div id="divnum" style=" position:absolute;left:100px;width:200px;top:100px;"></div> </body></html>asp 中实现的代码<%dim a,b,c,d,m,n,zi=1for i=100 to 999a=mid(i,1,1)b=mid(i,2,1)c=mid(i,3,1)d=a*a*am=b*b*bn=c*c*cz=d+m+nif z=i thenresponse.write z & "<br>"end ifnext%>Visual FoxPro ⽤表单实现法(只计3位)⽅法⼀,clearfor a=1 to 9for b=0 to 9for c=0 to 9x=a*100+b*10+cif x=a^3+b^3+c^3xendifendforendforendfor⽅法⼆,(1)创建 Form1并添加 Text1与 Command1(2)修改Command1的Caption属性为“计算并显⽰”(3)为Form1添加⽅法sxh(4)修改⽅法sxh代码如下para xx1=int(x%10)x2=int(x/10)%10return .t.elsereturn .f.endif(5)为Command1的编写如下的事件代码:thisform.currentx=thisform.width/2thisform.currenty=thisform.height/2thisform.print("⽔仙花数是:")for m=100 to 999thisform.text1.value=msure=thisform.sxh(m)if sure=.t.thisform.print(str(m,4)+space(3))inkey(0.5)endiffor 延迟=1 to 20000yiru=2008610029endforendforthis.enabled=.f.QBASIC⽔仙花数1—999999之间CLSFOR i = 1 TO 999999e$ = STR$(i)a$ = MID(e$, 1, 1)b$ = MID(e$, 2, 1)c$ = MID(e$, 3, 1)d$ = MID(e$, 4, 1)a = VAL(a$) ANDb = VAL(b$) ANDc = VAL(c$) ANDd = VAL(d$) IF i = a ^ 4 + b ^ 4 + c ^ 4 + d ^ 4 THEN PRINT i;NEXT iENDPB 实现的⽅法(只计3位数)int s,a,b,cfor s=100 to 999a=integer(s/100)b=integer((s - a*100)/10)c=s - integer(s/10)*10if s=a^3+b^3+c^3 thenmessagebox("",s)end ifnextActionScript实现的⽅法(只计3位数)var n:int;var m:int;for (var i:int=1; i<=9; i++) {for (var j:int=1; i<=9; j++) {for (var k:int=1; i<=9; k++) {m=i*100+j*10+k;if (m==i*i*i+j*j*j+k*k*k) {n++;trace(m);}}}}Delphi实现的⽅法(100-999)var a,b,c,d:integer;beginfor a:=100 to 999 doc:=a div 10 mod 10;d:=a mod 10;if b*b*b+c*c*c+d*d*d=a then memo1.Lines.Add(inttostr(a)) endend;MATLAB中实现的⽅法(100-999)for m=100:999m1=fix(m/100);m2=rem(fix(m/10),10);m3=rem(m,10);if m==m1^3+m2^3+m3^3disp(m)endend或者:Mathematica实现⽅法(可现不定位数解)n=Input["请输⼊⼤于2的⾃然数n:"];For[i=10^(n-1),i<10^n-1,i++,If[Total[IntegerDigits^IntegerLength]==i,Print]]添加⼀种C++的算法#include<iostream>#include<cmath>using namespace std;void main(){int a,b,c,e,f,g;double d;b=1;f=0;a=100;e=0;c=g=a;A:do{a/=10;b++;}while(a>10);do{d=g%10;g/=10;e+=pow(d,b);f++;}while(f!=b+1);if(e==c){cout<<c<<"\n";c++;a=g=c;b=1;f=0;e=0;goto A;}else{c++;a=g=c;b=1;f=0;e=0;goto A;}}BASH 脚本实现计算100-999之内数dofor (( b=0; b<10; b++ ))dofor (( c=0; c<10; c++ ))donumber1=$((a*100+b*10+c))number2=$((a**3+b**3+c**3))if [ $number1 -eq $number2 ]; thenecho "Found number $number1"fidonedonedone易语⾔代码求指定范围内⽔仙花数.版本 2.⼦程序取出⽔仙花数, 整数型, , 返回范围内⽔仙花数个数,如果范围过⼤将会⼗分耗时.参数起始数字, 整数型, , 从此数开始判断是否为⽔仙花数.参数结束数字, 整数型, , 此数必须⼤于起始数字.参数保存得到⽔仙花数的数组, 整数型, 可空数组.局部变量数字数组, ⽂本型, , "0".局部变量⽔仙花数, 整数型, , "0".局部变量总和, 整数型.局部变量计次, 整数型.局部变量计次2, 整数型.如果真 (起始数字 > 结束数字)清除数组 (保存得到⽔仙花数的数组)返回 (0).如果真结束.变量循环⾸ (起始数字, 结束数字, 1, 计次).计次循环⾸ (取⽂本长度 (到⽂本 (计次)), 计次2)加⼊成员 (数字数组, 取⽂本中间 (到⽂本 (计次), 计次2, 1))处理事件 ().计次循环尾 ().计次循环⾸ (取数组成员数 (数字数组), 计次2)总和 = 总和 + 求次⽅ (到数值 (数字数组 [计次2]), 取⽂本长度 (到⽂本 (计次)))处理事件 ().计次循环尾 ().如果真 (总和 = 计次)加⼊成员 (⽔仙花数, 计次).如果真结束处理事件 ().变量循环尾 ()保存得到⽔仙花数的数组 = ⽔仙花数返回 (取数组成员数 (⽔仙花数))vb代码判断⽔仙花数Dim a() As Integern = InputBox("请输⼊⼀个n位正整数" & Chr(10) & "n⼤于等于3", "⽔仙花数", 153) Dim i As Integerm = Len(n)ReDim a(1 To m) As IntegerFor i = 1 To ma(i) = Val(Mid(n, i, 1))Next iFor i = 1 To ms = a(i) ^ m + sNext iIf s = Val(n) ThenMsgBox "是⽔仙花数"ElseMsgBox "不是⽔仙花数"End If再加⼀种C语⾔⽅法:#include <math.h>int main(){unsigned long fr,to,n,m,k,sum;int nLog,numlen,brPoint=1;//输⼊100~约4000000000(unsigned long)间的范围printf("Input Number Range ('from' 'to'):"); scanf("%lu %lu",&fr,&to);for(n=fr;n<=to;n++){//算出n有多少位nLog = log10(n);numlen = floor(nLog)+1;//数n 的各位数字的位数次幂的和m=n;sum=0;while(m>0){k=m%10;sum+=pow(k,numlen);m=m/10;}//若是⽔仙花数,输出。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

pythonwhile水仙花数的编程
水仙花数是指一个三位数,它的各位数字的立方和等于该数本身。

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

在Python中,可以使用while循环来寻找水仙花数。

下面是实现水仙花数的Python程序:
```
#找出所有的水仙花数
#初始化变量
n = 100
result = []
#循环判断每一个三位数是否是水仙花数
while n < 1000:
#分离百位、十位和个位数字
bai = n // 100
shi = n % 100 // 10
ge = n % 10
#判断是否是水仙花数
if n == bai**3 + shi**3 + ge**3:
result.append(n)
#继续判断下一个数字
n += 1
#输出结果
print("100~999之间的水仙花数:", result)
```
在这段代码中,首先初始化了一个变量n,它的值为100。

接下来,使
用while循环来判断每一个三位数是否是水仙花数。

首先将n分解为百位、十位和个位三个数字,然后判断它们的立方和是否等于n本身。

如果是水仙花数,就将它加入到结果列表中。

最后输出结果列表即可。

运行程序后,输出结果为:
```
100~999之间的水仙花数: [153, 370, 371, 407]
```
可以看到,100到999之间一共有4个水仙花数,它们分别是153、370、371和407。

需要注意的是,上面的程序只能找到三位数的水仙花数。

如果需要找
到更高位数的水仙花数,只需要修改while循环中的起始值和结束值即可。

总的来说,Python的while循环结合数值计算和逻辑判断,可以快速找
到满足一定条件的数字,进而提高编程效率。

相关文档
最新文档