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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

学了for循环后,自己能分别写出100到1000和1000到10000之间的水仙花数,现在想扩展一下,想求任意的n到m之间的水仙花数,求解?

10 个回复

倒序浏览
什么是水仙花数
回复 使用道具 举报
赞一个,嘿嘿
回复 使用道具 举报
大神,你做的挺快的,我还没做到呢,做到了可以交流下
回复 使用道具 举报
取出 个位 十位 百位 分别三次幂 再相加 判断和原数 是否相等
回复 使用道具 举报
张国繁 发表于 2015-6-20 10:46
大神,你做的挺快的,我还没做到呢,做到了可以交流下

大神可不敢担,我也就是一只小菜鸟.呵呵,共同努力!
回复 使用道具 举报
XiaoBaoMi 发表于 2015-6-20 11:25
取出 个位 十位 百位 分别三次幂 再相加 判断和原数 是否相等

恩,谢谢!这个我明白,这是求100--1000之间的,我现在是想问:求任意自然数之间n到m中的水仙花数?
回复 使用道具 举报
aofex 中级黑马 2015-6-20 23:03:43
8#
都这么厉害啊  
回复 使用道具 举报
还是要确定m是几位数
回复 使用道具 举报
#include <stdio.h>  int main(int argc, const char * argv[]) {     // insert code here...     int n,m,j=0;     printf("请输入m、n并以空格隔开且m<n\n");     scanf("%d %d",&m,&n);     int a,b,c,d;     if (m>=1&&m<10000&&n<10000) {         for (int i=m; i<n; i++) {             a=i%10;             b=(i%100)/10;             c=(i%1000)/100;             d=(i/1000);             int sum = a*a*a + b*b*b + c*c*c +d*d*d;             if (i==sum) {                 j++;                 printf("%d个%d\n",j,i);             }         }          }               return 0; }
回复 使用道具 举报
用一个for循环 监听 (a++)n 和 m是多少位之间的水仙花数(3,4,5,6,7.。。。。), 再写一个for循环 提取(a--)每个位置上的数 再用一个for循环 3就是3次方 4就是4次方 判断
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马