前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >BC38-变种水仙花数

BC38-变种水仙花数

作者头像
对编程一片赤诚的小吴
发布2024-01-23 14:52:35
810
发布2024-01-23 14:52:35
举报

题目来源:BC38-变种水仙花数

描述

变种水仙花数 - 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。

解题思路

对于初学者来说,只是单纯的根据题目来理解思路是很难做到的,用例子来解释才是最好的理解。比如根据所给例子,我们稍微变换一下,得到655=(655/100)*(655%100)+(655/10)*(655%10),没看出来?再接着来,1461=(1461/1000)*(1461%1000)+(1461/100)*(1461%100)+(1461/10)*(1461%10),这样一来,是不是有规律了呢,所以,我们可以根据所得出的规律来总结满足条件,如果满足,则输出。

代码语言:javascript
复制
#include <stdio.h>
int main()
{
    int i = 0;
    for(i=10000; i<=99999; i++)
    {
        //判断i是否为lily number
        int j = 10;
        int sum = 0;
        int tmp = i;
        for(j=10; j<=10000; j*=10)
        {
            sum += (tmp%j)*(tmp/j);
        }
        if(sum == i)
            printf("%d ", i);
    }
    return 0;
}
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-01-23,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 描述
  • 解题思路
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档