用C语言编程求水仙花数

编程实现输出指定的两个整数m和n之间的所有水仙花数,每个水仙花数后面跟着一个空格


#include "stdio.h"
int main()
{
  int i,j,k,n;
  int m,q;
  scanf("%d %d",&m,&q);
  for(n=m,m>=100;n<q;n++)
  {    
    i=n/100;/*分解出百位*/
    j=n/10%10;/*分解出十位*/
    k=n%10;/*分解出个位*/
    if(i*100+j*10+k==i*i*i+j*j*j+k*k*k)
      printf("%-5d",n);
  }
  return 0;
}
  • 帮你找了个相似的问题, 你可以看下: https://ask.csdn.net/questions/7552646
  • 我还给你找了一篇非常好的博客,你可以看看是否有帮助,链接:输出N位正整数里的所有水仙花数
  • 除此之外, 这篇博客: 5.C语言编写函数查找水仙花数中的 C语言编写函数查找水仙花数 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • 设有一个3位数,它的百位数、十位数、个位数的立方和正好等于这个3位数,如153=1+125+27。
    编写函数,返回小于等于传入参数n且满足该条件的三位数(称为水仙花数)的个数。
    (指定函数原型:int find(int n)) 返回值要求:如果传入参数n不是三位数或者在该范围内没有找到,则find返回0, 否则返回找到的水仙花数的个数。 注意:不要在find函数中打印(如调用printf或puts等函数)任何数据,否则视为错误。

    在这里插入代码片
    #include<stdio.h>
    #include<stdlib.h>
    #include<math.h>
    int find(int n)
    {   int a, b, c;
     if (n < 100 || n>999)
             return 0;
     else{
     int d=100, count = 0;
      while (d <= n )
      {
       a = d /100;
       b = (d - a * 100) / 10;
       c = (d- a * 100 - b * 10);
       if (pow(a,3)+pow(b,3)+pow(c,3)== d)
       {
                count++;
       }
       d++;
      }
      return count;
     }
    }
    int main()
    {
     int n, r;
     r = scanf_s("%d", &n);
     if (r != 1)
     { 
      printf("error");
          return -1;
     }
     r = find(n);
     printf("%d", r);
     return 0;
    }
  • 您还可以看一下 吴刚老师的【吴刚】电商活动站设计初级入门标准视频教程课程中的 07-水花溅落效果的制作方法小节, 巩固相关知识点