注册 登录
编程论坛 C语言论坛

//判断开区间(m,n)内的水仙花数 ,m<n。

agoni68 发布于 2019-12-29 16:00, 1762 次点击
程序代码:
//判断开区间(m,n)内的水仙花数 ,m<n
#include<stdio.h>
#include<math.h>
int main()
{
    int m,n;
    int i;        //用于循环
    scanf("%d %d",m,n);
    for(i=m+1;i<=n-1;i++)        //循环输出(m,n)之间的各个数
    {
       int i,xh,temp,v=1;    //xh为循环变量
          int b;        //用于储存i的值;
       int sum=0;
       int a[10];
       b=i;
       //判断水仙花数
       for(xh=0;xh<=9;xh++)
       {
                      a[xh]=i%10;
                    temp=i/10;
                    i=temp;
                    if(temp==0)    break;
                       v++;
        }
    for(xh=0;xh<v;xh++)
    {
        sum=sum+pow(a[xh],v);
    }
    if(sum==b)    printf("%d\n",sum);   
    }
    return 0;
}
只有本站会员才能查看附件,请 登录


为什么执行没结果??请大神帮忙。

2 回复
#2
纯蓝之刃2019-12-29 17:29
程序代码:
#include<stdio.h>
#include<math.h>
int main()
{
    int m,n;
    int i;        //用于循环
    scanf("%d %d",&m,&n);
    for(i=m+1;i<=n-1;i++)        //循环输出(m,n)之间的各个数
    {
        int a,b;        //用于储存i的值;
        int sum=0;
        b=i;
        //判断水仙花数
        while(1)
        {
            a=b%10;
            sum+=a*a*a;
            b=b/10;
            if(b==0)
                break;
        }
        if(sum==i)
            printf("%d\n",sum);
    }
    return 0;
}
#3
D22845814702019-12-29 23:22
您好,基本上是这样的。不懂得随时可以私信我;
程序代码:

#include<stdio.h>
int main()
{
    int n, m;//输入两个数
    int num, sum;
    int r;
    scanf("%d %d", &n, &m);
    for (int i = n; i <= m; i++)
    {
        sum = 0;
        num = i;
        while (num != 0)
        {
            r = num % 10;
            sum += r * r * r;
            num = num / 10;
        }
        if (sum == i)
        {
            printf("%d ", i);
        }
    }
        getchar();
        return 0;
}


……………………………………………………………………
相信自己一定可以,加油!
1