数学建模社区-数学中国

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

作者: kill2345    时间: 2013-8-10 11:42
标题: 谭浩强书上的课后习题水仙花数,求解
本帖最后由 kill2345 于 2013-8-10 12:00 编辑
1 X) a0 C8 ?7 U6 N& U$ X. ?9 C8 q) y/ d; m; E' o. s( {
自学c,正在看谭浩强的《C程序设计》,遇到一个题不会,请教 4 e( S& k3 z1 g% _& v4 ^
       输出所有的“水仙花数”,所谓“水仙花数”是指一个3位数,其各位数字立方和等于该数本身。例如,153是一个水仙花数,因为
, b, X" z4 V: L7 [6 t) `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>9 a' ?1 b! g: {% |, z
  2. int pow(int x,int y)! H8 d% I% Q* b+ g
  3. {
    # S2 {5 D3 h1 z
  4.     int num=1,i;- P  Q! P2 A  }: q# a  f6 D
  5.     for(i=0;i<y;i++)( _3 o. S" {3 T- z1 I! [5 k
  6.     {
    ( @7 {3 Z1 h6 s. C
  7.         num *= x;9 g. U' B% t& j! b' i4 h" g
  8.     }/ \+ l6 ?( T8 d, _9 i' W
  9.     return num;   
      R! V8 o8 l' O! r, U, B
  10. }1 {1 v) W9 l9 F4 V( G4 T
  11. void main()6 r: ^3 n; f' X* w5 O0 p; `
  12. {
    , _; [& A; n4 p8 y" X
  13.     int num,temp,i,count=1,number;4 D+ L( ^3 D1 s$ ^  m, Z
  14.     int temp1;' X3 g0 b. |; x5 V
  15.     scanf("%d",&num);
    ) n+ r8 Y% S: u5 J
  16.     number = num;
    + o" c- d: @! V' x0 v# O6 U
  17.     for(i = 10 ; num/i ; i*=10)//记录一下num的位数
    . ]4 T: [+ u/ V6 j( p! n  p
  18.     {count++;}
    2 F( L+ \/ N0 J. p1 A
  19.     //将number所有位数分离
      L8 X) y6 c( \' T* k& O
  20.     temp = pow(num%10,count); * j: f8 G7 W1 j, D
  21.     for(i = count -1 ; i>0 ; i-- )  N4 U8 W8 C8 n* S
  22.     {   
    6 r: J) s! I9 k* \
  23.         temp1 = num / pow(10,i);
    2 t" x% d7 T) j
  24.         temp += pow(temp1,count);
    3 E- ?, E* {+ D" z; ]+ Q
  25.         num = num - pow(10,i)* (num / pow(10,i));
    ! E0 @" G/ q1 U9 H) c, j
  26.     }
    ; K: x& [. b" z$ U, z1 V- [; {3 R- W
  27.      if(temp == number)
    / w, R) L) H1 y! m3 J+ N# ?- f
  28.      printf("yes");
    - r( t, z& r0 d0 s3 |
  29.      else
    8 X1 T& R' d* {$ c: _2 k) ?- q
  30.      printf("no");2 h, u, |3 N1 }4 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
" }% w3 l! b" X+ S1 x撒旦发射点发速度发生的发打算

- W1 ?& s; T1 K7 k) h8 n) M难道楼上是来灌水的吗?
作者: 仰望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)" w5 D' R9 E. Z' c( r2 K* ]5 ?
    发表回复();
作者: jack_lvzheng    时间: 2013-11-3 10:17
while(1)
$ B' R5 r9 P: c3 h4 t6 p, U    发表回复();
作者: lvzh2    时间: 2014-1-20 10:05
网上都有源码的。。。




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