列表

详情


BC92. 变种水仙花

描述

变种水仙花数 - Lily Number:把任意的数字,从中间拆分成两个数字,比如1461 可以拆分成(1和461),(14和61),(146和1),如果所有拆分后的乘积之和等于自身,则是一个Lily Number。

例如:

655 = 6 * 55 + 65 * 5

1461 = 1*461 + 14*61 + 146*1

求出 5位数中的所有 Lily Number。

输入描述

输出描述

一行,5位数中的所有 Lily Number,每两个数之间间隔一个空格。

原站题解

C 解法, 执行用时: 1ms, 内存消耗: 176KB, 提交时间: 2022-01-26

#include <stdio.h>
int main()
{
    int i;
    for(i=10000;i<=100000;i++)\
    {
        if(i==((i/10000)*(i%10000))+((i/1000)*(i%1000))+((i/100)*(i%100))+((i/10)*(i%10)))
            printf("%d ",i);
    }
    return 0;
}

C 解法, 执行用时: 1ms, 内存消耗: 180KB, 提交时间: 2021-11-29

#include<stdio.h>
int main()
{
    int number,j;
    for(number=10000;number<99999;number++)
    {
        int sum=0;
        for(j=10;j<=10000;j=j*10)
        {
            sum=sum +(number/j)*(number%j);
        }
        if(sum==number)
            printf("%d ",number);
    }
    return 0;
}

C 解法, 执行用时: 1ms, 内存消耗: 180KB, 提交时间: 2021-11-21

#include<stdio.h>
int main()
{
    int i,a,b,c,d,e,f,g,h;
    for(i=10000;i<100000;i++)
    {a=i/10000;
    b=i%10000;
    c=i/1000;
    d=i%1000;
    e=i/100;
    f=i%100;
    g=i/10;
    h=i%10;
    if(i==a*b+c*d+e*f+g*h)
    {printf("%d ",i);}
    }   
}

C 解法, 执行用时: 1ms, 内存消耗: 188KB, 提交时间: 2022-01-28

#include<stdio.h>
main()
{
    int a,b,c,d,e,n;
    a=0;b=0;c=0;d=0;e=0;
    for(n=10000;n<=99999;n++)
    {
     a=(n/10000)*(n%10000);
      b=(n%1000)*(n/1000);
      d=(n%100)*(n/100);
       e=(n%10)*(n/10);
      if(a+b+c+d+e==n)  printf("%d ",n);
    }
    
    
}

C 解法, 执行用时: 1ms, 内存消耗: 188KB, 提交时间: 2021-07-22

int main()
{
    int i = 0;
    for(i=9999;i<=99999;i++)
    {
        int a=i/10000;
        int a1 = i%10000;
        int b=i/1000;
        int b1 = i%1000;
        int c=i/100;
        int c1 =i %100;
        int d = i/10;
        int d1=i%10;
        if((a*a1)+(b*b1)+(c*c1)+(d*d1)==i)
        {
            printf("%d ",i);
        }
    }
    return 0;
}

上一题