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

水仙花数 -- C++ 实现

作者头像
Skykguj
发布2022-09-09 11:35:33
1.5K0
发布2022-09-09 11:35:33
举报
文章被收录于专栏:Skykguj 's Blog

水仙花数(Narcissistic number)也被称为超完全数字不变数(pluperfect digital invariant, PPDI)、自恋数、自幂数、阿姆斯壮数或阿姆斯特朗数(Armstrong number),水仙花数是指一个 3 位数,它的每个位上的数字的 3次幂之和等于它本身(例如:1^3 + 5^3+ 3^3 = 153)。

1.算法分析

将给出的数字拆分成百位,十位和个位,将它们存储到变量中并用这些数求其立方和,若该数的立方和等于这个数,则这个数为水仙花数。

2.算法设计

根据水仙花数是一个三位数,可以设计一个 for 循环,循环变量为 i ,只要 i 大于 100 且小于 999,就一直枚举数字。

for (int i=100; i<1000; i++) {...}

for.png
for.png

将 i 对 10 取余,得出 i 在个位上的数字 a 。

将 i 整除以 10 再除以 10 取余 , 得出 i 在十位上的数字 b ;

将 i 整除以 100 ,得出 i 在百位上的数字 c 。

求得 a,b,c 三个数字的立方和是否与 i 相等,如果相等则证明该数为水仙花数。

3.代码实现

代码语言:javascript
复制
#include <iostream>
#include <cmath>
using namespace std;
int main()
{
    for(int i=100;i<1000;i++)
    {
        double a,b,c;
        a=i%10;
        b=i/10%10;
        c=i/100;
        if(pow(a,3)+pow(b,3)+pow(c,3)==i)
        {
            cout<<i<<endl;
        }
    }
    return 0;
}

4.扩展资料

四位自幂数:四叶玫瑰数 五位自幂数:五角星数 六位自幂数:六合数 七位自幂数:北斗七星数 八位自幂数:八仙数 九位自幂数:九九重阳数 十位自幂数:十全十美数

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021 年 02 月,如有侵权请联系 cloudcommunity@tencent.com 删除

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

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1.算法分析
  • 2.算法设计
  • 3.代码实现
  • 4.扩展资料
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档