水仙花数Word文件下载.docx

上传人:b****5 文档编号:15838040 上传时间:2022-11-16 格式:DOCX 页数:20 大小:40.05KB
下载 相关 举报
水仙花数Word文件下载.docx_第1页
第1页 / 共20页
水仙花数Word文件下载.docx_第2页
第2页 / 共20页
水仙花数Word文件下载.docx_第3页
第3页 / 共20页
水仙花数Word文件下载.docx_第4页
第4页 / 共20页
水仙花数Word文件下载.docx_第5页
第5页 / 共20页
点击查看更多>>
下载资源
资源描述

水仙花数Word文件下载.docx

《水仙花数Word文件下载.docx》由会员分享,可在线阅读,更多相关《水仙花数Word文件下载.docx(20页珍藏版)》请在冰豆网上搜索。

水仙花数Word文件下载.docx

4210818

1741725

9926315

  8:

24678050

24678051

88593477

  9:

146511208

912985153

472335975

534494836

  10:

4679307774

  11:

32164049650

40028394225

42678290603

49388550606

32164049651

94204591914

44708635679

82693916578

  14:

28116440335967

  16:

4338281769391370

4338281769391371

  17:

35875699062250035

21897142587612075

  19:

3289582984443187032

4929273885928088826

4498128791164624869

  20:

63105425988599693916

  21:

449177399146038697307

128468643043731391252

  23:

27907865009977052567814

35452590104031691935943

27879694893054074471405

21887696841122916288858

  24:

174088005938065293023722

188451485447897896036875

  (为环保起见,24位以上的水仙花数略)

  理论上,最大的水仙花数不超过34位。

求取方法(非高精度)

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

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"

;

  }

  ?

>

PHP所有位数理论输出:

  /***水仙花数为不小于3位的数字,每位数字的N次幂的和等于该数字.N为该数字的位数

  *@namedaffodilsNum水仙花数

  *@param$places水仙花位数>

=3

  */

  functiondaffodilsNum($places=3){

  //set_time_limit(0);

//设置脚本超时为不限制,如果提示30秒超时,可以开启本控制

  //$begin=microtime();

//脚本开始时间

  //定义位数

  if(!

defined('

PLACES'

))define('

is_numeric($places)?

$places:

3);

  if(PLACES>

=3){

  $min=pow(10,PLACES-1);

//选数范围起始位置

  $max=pow(10,PLACES);

//选数范围结束位置

  //开始选数

  for($i=$min,$out='

'

$max;

  $sum=0;

//当前选数下各个幂值的和

  $arr=str_split($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"

"

.(microtime()-$begin);

//输出脚本耗时,当脚本开始时间开启时有效

  else{

  //$this->

error('

错误的位数'

);

//提示错误的位数

C语言的"

水仙花数"

实现代码:

  #include<

stdio.h>

  #include<

math.h>

  intmain(void){

  longn,p;

  longc,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);

j<

=i;

j++){

  p+=pow(s[j],i);

p=%d,i=%d\n"

p,i);

  if(p==q){

%d为水仙花数"

q);

  }else{

%d该数不是水仙花数"

PASCAL实现代码:

  programshuixianhuashu;

  var

  a,b,c:

integer;

  begin

  fora:

=1to9do

  forb:

=0to9do

  forc:

  ifa*a*a+b*b*b+c*c*c=100*a+10*b+cthenwriteln(100*a+10*b+c);

  end.

  或:

  programsxh;

  vara,b,c,d:

=100to999dobegin

  b:

=amod10;

  c:

=amod100div10;

  d:

=adiv100;

  ifb*b*b+c*c*c+d*d*d=athenwriteln(a);

  end;

  或

  programabcd;

  a,b,c,i,t:

  i:

=100;

  repeat

  a:

=trunc(i/100);

=trunc(i/10)-a*10;

=i-trunc(i/10)*10;

  t:

=a*a*a+b*b*b+c*c*c;

  ifi=t

  thenwriteln(i,'

='

a,'

^3+'

b,'

c,'

^3'

=i+1

  untili>

999

end.

VisualBasic的"

FORTRAN的"

  WRITE(*,30)

  DO10K=100,999

  IA=K/100

  IB=MOD(K,100)/10

  IC=MOD(K,10)

  IF(K.NE.IA**3+IB**3+IC**3)GOTO10

  WRITE(*,20)K,IA,IB,IC

  10CONTINUE

  20FORMAT(5X,4I4)

  30FORMAT(5X,18HN=I**3+J**3+K**3)

  STOP

  END

C++编译器上的水仙花数实现代码

iostream>

  usingnamespacestd;

  intmain()

  {inta,q,w,e;

  for(a=100;

a<

++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<

是水仙花数"

endl;

};

  return0;

pyhon中实现的代码

  foriinrange(1,10):

  forjinrange(0,10):

  forkinrange(0,10):

  ifi*100+j*10+k==i*i*i+j*j*j+k*k*k:

  printi*100+j*10+k

Java中实现的代码

  publicclassshuixianhuashu{

  publicstaticvoidmain(String[]args){

  for(inti=100;

i<

i++){

  inta=i/100;

  intb=i/10%10;

  intc=i%10;

  if(Math.pow(a,3)+Math.pow(b,3)+Math.pow(c,3)==i)

  System.out.println(i+"

C#ASP.N中的实现代码

  for(inti=100;

i<

1000;

i++)

  {

  intbai=0;

  intshi=0;

  intge=0;

  intbaiyushu=0;

  bai=i/100;

  baiyushu=i%100;

  shi=baiyushu/10;

  ge=baiyushu%10;

  if(

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 初中教育 > 初中作文

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1