数学建模社区-数学中国

标题: 谭浩强书上的课后习题水仙花数,求解 [打印本页]

作者: kill2345    时间: 2013-8-10 11:42
标题: 谭浩强书上的课后习题水仙花数,求解
本帖最后由 kill2345 于 2013-8-10 12:00 编辑 0 [6 a2 _/ P$ t3 A
, y) R. R! X! J4 l( F+ _) ^
自学c,正在看谭浩强的《C程序设计》,遇到一个题不会,请教 # y5 B( z8 J+ l% y, o
       输出所有的“水仙花数”,所谓“水仙花数”是指一个3位数,其各位数字立方和等于该数本身。例如,153是一个水仙花数,因为/ T* b& j* ?. i) ~
153=1[sup]3[/sup]+5[sup]3[/sup]+3[sup]3[/sup]。
作者: wangzheng3056    时间: 2013-8-10 11:59
赶快上来抢点体力!
作者: wangzheng3056    时间: 2013-8-10 12:00
楼主试试, 你可以任意输入n个数,只要不超出int型的范围就行了
  1. #include<stdio.h>
    * L- \4 b" j& m9 V$ `2 U/ z* x
  2. int pow(int x,int y). u6 U6 ~0 @$ `& X' E5 T) E
  3. {
    % ]6 p: Y- D, D* W  T+ [
  4.     int num=1,i;! k* G, H! E: ^+ x" u* `
  5.     for(i=0;i<y;i++)
    / D% @$ n+ l* k- x9 j: e$ s
  6.     {( e3 \0 |$ L0 G7 ]4 ~
  7.         num *= x;( x% J  C' O( [2 {3 V
  8.     }8 B. d8 D3 r/ T
  9.     return num;   
    $ x; O# Y9 i3 g: }( Y1 I
  10. }  _* ^# z" a3 B. b
  11. void main()6 S1 V/ v% y, x3 U6 K
  12. {
    / E) Y' ^  O  _- V! t
  13.     int num,temp,i,count=1,number;
    / `- T+ ]6 S; j1 {' ]$ Y* [
  14.     int temp1;+ x, H* V  F, N* e1 [1 m% w" p
  15.     scanf("%d",&num);. _% H! f- C* t% i+ U3 o
  16.     number = num;
    - a- |, `; v7 ?$ n. H/ G/ C  g
  17.     for(i = 10 ; num/i ; i*=10)//记录一下num的位数- V5 q& i0 l  g: b- y
  18.     {count++;}1 |/ |; ~# x8 f$ |
  19.     //将number所有位数分离9 _9 |1 R8 R" o7 l- j1 F
  20.     temp = pow(num%10,count);
    3 `1 j' D% N" i1 ?8 q; J. k
  21.     for(i = count -1 ; i>0 ; i-- )
    8 z( L3 m1 j" N
  22.     {   
    5 A9 k2 J) s1 q- N
  23.         temp1 = num / pow(10,i);& t6 c! u! V0 ~- m# e$ G2 j/ n! M
  24.         temp += pow(temp1,count);
    2 O0 H* M% Z7 V. i8 x* M1 v& J4 w
  25.         num = num - pow(10,i)* (num / pow(10,i));
    ! N; ^# H7 j3 }5 w
  26.     }- e$ Q% s" r2 v2 j
  27.      if(temp == number)4 f+ i1 v& Y: [2 m$ m% |" T# g; y
  28.      printf("yes");4 C7 V$ s: d- L  o+ f) z9 L
  29.      else
    2 C+ g! z# @: c: S# x
  30.      printf("no");
    5 f" B6 w$ \% L. y# B, I
  31. }
复制代码

作者: wangzheng3056    时间: 2013-8-10 12:01
太高兴了,总算有人进来问问题了
作者: wangzheng3056    时间: 2013-8-10 12:01
刷屏程序开始
作者: wangzheng3056    时间: 2013-8-10 12:02
刷频,刷频,刷屏
作者: magic2728    时间: 2013-8-10 17:29
三层循环,三个数位分别从0~9,注意排除非三位数情况,验证结果是否符合就行了。楼主自己敲一下代码吧,只有亲自动手才能发现问题的细节处,精妙处,加油!有不懂的欢迎再来提问!
作者: ゞ★人才涛涛    时间: 2013-8-11 20:22
楼主要问的是什么
作者: ゞ★人才涛涛    时间: 2013-8-11 20:22
撒旦发射点发速度发生的发打算
作者: kill2345    时间: 2013-8-12 10:17
ゞ★人才涛涛 发表于 2013-8-11 20:22 9 ?4 z' Y6 e% d; C( s
撒旦发射点发速度发生的发打算

% M: z$ K$ F/ |难道楼上是来灌水的吗?
作者: 仰望0712    时间: 2013-8-12 16:51
#include<stdio.h>void main(){ int i,j,k,n;  for(i=1;i<10;i++)  for(j=0;j<10;j++)   for(k=0;k<10;k++)   {    n=i*100+j*10+k;    if((i*100+j*10+k)==((i*i*i)+(j*j*j)+(k*k*k)))     printf("水仙花数为:%d\n",n);   }}
作者: Summershumo    时间: 2013-8-15 16:55
顶一下,,,,,,,,,,,,
作者: jack_lvzheng    时间: 2013-11-3 10:16
while(1)
: h# M' J$ d. ~6 H& s* p8 i    发表回复();
作者: jack_lvzheng    时间: 2013-11-3 10:17
while(1), W% |! W& r: r8 d* ?  p
    发表回复();
作者: lvzh2    时间: 2014-1-20 10:05
网上都有源码的。。。




欢迎光临 数学建模社区-数学中国 (http://www.madio.net/) Powered by Discuz! X2.5