数学建模社区-数学中国

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

作者: kill2345    时间: 2013-8-10 11:42
标题: 谭浩强书上的课后习题水仙花数,求解
本帖最后由 kill2345 于 2013-8-10 12:00 编辑 % i0 o3 L7 a; _  E/ u4 F
& J" t* O. R4 `0 C5 d% S
自学c,正在看谭浩强的《C程序设计》,遇到一个题不会,请教
6 ^- Z0 A# B( O% M6 b6 @* y$ v       输出所有的“水仙花数”,所谓“水仙花数”是指一个3位数,其各位数字立方和等于该数本身。例如,153是一个水仙花数,因为/ y/ J: \" |7 W
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>
    % x: f; U$ b6 z& W
  2. int pow(int x,int y)
    9 v' X4 q7 J& J" a3 B9 a( m: y) ]2 b" T
  3. {
    + n8 P& m/ O2 M, Z
  4.     int num=1,i;  d; E& ^: w, }8 T
  5.     for(i=0;i<y;i++)- P( W$ u6 j- H0 p
  6.     {
    # S3 w9 n/ w6 e  B; N. M
  7.         num *= x;0 z7 U( c4 [. K! |/ `9 S
  8.     }$ N) x( \7 }  R& ^! U( x. @1 b% i
  9.     return num;   , P/ c6 z. g1 W% E2 J
  10. }
    9 a. S' j' m$ H
  11. void main()
    0 @3 a2 G) `8 q% l. ?- x
  12. {: l7 s" V& }# E8 i4 C: v
  13.     int num,temp,i,count=1,number;9 ~" T% d1 F( ]6 L% n$ j# f5 |
  14.     int temp1;
    & ~3 z) j! S* u- Q. `
  15.     scanf("%d",&num);
    + M; w5 b% E9 \5 _2 d9 }1 V; o
  16.     number = num;
    ' i; q9 J4 ?# Q. `2 o$ h2 [6 A
  17.     for(i = 10 ; num/i ; i*=10)//记录一下num的位数
    : M% K7 Y6 `4 q8 W9 _( Z# Z0 B
  18.     {count++;}  W1 y: h) V% A
  19.     //将number所有位数分离1 G' P% ^+ i# g) m
  20.     temp = pow(num%10,count);
    3 V9 O( }# `' O; g7 M- v& y, ]
  21.     for(i = count -1 ; i>0 ; i-- )
    / C" a$ U2 o/ ?8 ^. `0 G9 S8 I- k
  22.     {   
    " ?- X" U. H( O0 Z/ H4 Z
  23.         temp1 = num / pow(10,i);
    ! d9 Z) ?4 v( D1 Y! |
  24.         temp += pow(temp1,count);
    8 B* R1 d1 Y- l- i
  25.         num = num - pow(10,i)* (num / pow(10,i));
    / d2 A& r% @; o- H2 v
  26.     }" E" B5 k* g6 u$ X* @
  27.      if(temp == number)
    3 M# O" I- m7 f- C) P
  28.      printf("yes");9 x% A& u$ `1 T0 x6 Q1 w1 F
  29.      else' Z& Z! n" V" \' `5 J
  30.      printf("no");1 C1 M4 h* c# F3 m3 ^
  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
$ o! T% ~8 \% K3 ^撒旦发射点发速度发生的发打算

0 c3 j( t0 }$ m9 p3 p7 f% x难道楼上是来灌水的吗?
作者: 仰望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)+ _. Z0 q4 \3 ?5 s6 t9 v
    发表回复();
作者: jack_lvzheng    时间: 2013-11-3 10:17
while(1)6 A  }0 |- ?6 M9 i
    发表回复();
作者: lvzh2    时间: 2014-1-20 10:05
网上都有源码的。。。




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