数学建模社区-数学中国

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

作者: kill2345    时间: 2013-8-10 11:42
标题: 谭浩强书上的课后习题水仙花数,求解
本帖最后由 kill2345 于 2013-8-10 12:00 编辑
* s1 d8 l6 {- ^2 d; e- \1 m' T9 G. V* w( D; O4 J
自学c,正在看谭浩强的《C程序设计》,遇到一个题不会,请教 8 `7 O3 [6 e1 ~! p( D  l7 \9 g: H
       输出所有的“水仙花数”,所谓“水仙花数”是指一个3位数,其各位数字立方和等于该数本身。例如,153是一个水仙花数,因为) p* M2 f8 Q# Y5 {
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>
    ( f% ^' }/ p: N- f8 u% X% x2 W# Q
  2. int pow(int x,int y)
    3 E2 z% M$ O$ S# l/ _% }5 b) a
  3. {
      c8 |: ^  _9 E' Q; A+ O) e$ ?
  4.     int num=1,i;
    , f: T. D- Y. w
  5.     for(i=0;i<y;i++)& ?7 j* Y8 F$ M5 S
  6.     {
    % c& o( c+ r3 _+ h  B1 k3 N
  7.         num *= x;
    1 h) Z4 {8 }1 z2 `1 j8 |# ?
  8.     }
    # l, R3 t/ r& M6 U
  9.     return num;   
    * N$ j0 _' v0 T$ H& k
  10. }
    6 f2 X$ X! @- L3 L2 m, P; J
  11. void main()& Q0 B$ \& n$ _& Z! Y/ C* L
  12. {
    2 {4 ^% j$ l( T
  13.     int num,temp,i,count=1,number;6 q# L7 E- }& |7 r$ V2 c' _' E
  14.     int temp1;# e- B) Q) F# e
  15.     scanf("%d",&num);
    , E6 {$ [3 j5 Z/ U- i$ X
  16.     number = num;) U& B3 n  v% N/ K3 U/ Z5 L
  17.     for(i = 10 ; num/i ; i*=10)//记录一下num的位数
    + X7 R7 G; y5 F
  18.     {count++;}
    6 l4 d; \+ c$ a0 b
  19.     //将number所有位数分离" Q& M+ y% C6 G
  20.     temp = pow(num%10,count); % y0 `7 H4 \* V# R: w4 W% P! B0 z
  21.     for(i = count -1 ; i>0 ; i-- )
    ; A) ?; W6 c  ]8 H, a
  22.     {   . M9 n2 R" Y( |4 b  `5 e
  23.         temp1 = num / pow(10,i);, ~/ A' o8 V+ `* k" n2 t
  24.         temp += pow(temp1,count);
    * I  k7 S. e7 {) `: n
  25.         num = num - pow(10,i)* (num / pow(10,i));
    & C: e2 x; B% P, `9 ~
  26.     }2 s/ q, E6 H$ z; ^
  27.      if(temp == number)
    5 ]' @3 t6 ^- i- [
  28.      printf("yes");
    5 F9 \( W$ M8 j* Z; p6 b$ A% J3 Q
  29.      else
    3 o& j+ }! y9 f- c
  30.      printf("no");. b. A# _8 u5 {% H1 G! B
  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 2 C' s7 C/ x4 @* [
撒旦发射点发速度发生的发打算
& J: Q) Q8 s+ b
难道楼上是来灌水的吗?
作者: 仰望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)
: x" }2 d. r' F% h" i    发表回复();
作者: jack_lvzheng    时间: 2013-11-3 10:17
while(1)
! P7 O" K1 L5 f    发表回复();
作者: lvzh2    时间: 2014-1-20 10:05
网上都有源码的。。。




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