A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© XiaoBaoMi 中级黑马   /  2015-6-20 16:13  /  969 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

  1. #include <stdio.h>

  2. int main() {
  3.     printf("这是一个输出100-1000水仙花数的程序\n");
  4.     /*个位,十位,百位*/
  5.     int theUnit = 0, decade = 0, hundreds = 0;
  6.     /*中间参数*/
  7.     int middles = 0;
  8.     for(int i = 100;i < 9000;i++){
  9.         /*提取个位*/
  10.         theUnit = i % 10;
  11.         middles = i / 10;
  12.         /*提取十位*/
  13.         decade = middles % 10;
  14.         /*提取百位*/
  15.         hundreds = middles / 10;
  16.         if((theUnit * theUnit * theUnit) + (decade * decade * decade) + (hundreds * hundreds * hundreds)     == i){
  17.             printf("你抓到了一个水仙花数:%d\n",i);
  18.         
  19.         }
  20.     }
  21.     return 0;
  22. }
复制代码



输出是
153
370
371
407
1000
1001

为什么会有1000和1001?

5 个回复

倒序浏览
循环的范围错了 是100~1000 写成了100~9000
回复 使用道具 举报
同上。。
回复 使用道具 举报
说得对 谢谢楼上指点
回复 使用道具 举报
嗯嗯啊  还好
回复 使用道具 举报
围观学习
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马