【C++】条件分支练习题2:水仙花数

题目描述

给定一个整数,判断其是否是水仙花数。三数a(百位数)、b(十位数)、c(个位数),满足 a^3+b^3+c^3=abc ,则称abc为水仙花数 ,比如153=1^3+5^3+3^3

输入格式

一行一个整数n

输出格式

若是,输出YES,若否,输出NO

样例组输入#1

153

样例组输出#1 

YES


        拓展文章:自幂数。(如有兴趣请点击下方链接查看)

 Python碎片化学习教程 @18. 自幂数、水仙花数、四叶玫瑰数等等是什么? - 哔哩哔哩


         首先,我们先要获取输入,将输入保存在int类型(输入格式中有写)的变量n中。

#include<bits/stdc++.h>
using namespace std;
int main(){
    int n;   //定义输入的变量
    cin >> n;   //获取输入,scanf()也可
    return 0;
}

        当获取完输入后,我们要分解这个数,分出百位、十位、个位,并用a,b,c三个变量保存起来。 以下为各位的获取方式:

个位要分解的数字%10
十位要分解的数字%100/10
百位

要分解的数字/100

        因此,代码应该这样写:

#include<bits/stdc++.h>
using namespace std;
int main(){
    int n;   //定义输入的变量
    cin >> n;   //获取输入,scanf()也可
    int a = n / 100;   //获取百位
    int b = n % 100 / 10;   //获取十位
    int c = n % 10;   //获取个位
    return 0;
}

        接下来要判断这个数是否是水仙花数。水仙花数的定义如下:

水仙花数是指一个3位数,它的每个位上的数字的立方和等于它本身。例如153就是一个水仙花数,因为1³+5³+3³=153。其他的水仙花数还有370、371、407等。

        我们需要一个判断语句,判断条件是a(百位数)*a*a+b(十位数)*b*b+c(个位数)*c*c=n(原数) 。如果条件成立,则输出YES,否则(else),输出NO。

#include<bits/stdc++.h>
using namespace std;
int main(){
    int n;   //定义输入的变量
    cin >> n;   //获取输入,scanf()也可
    int a = n / 100;   //获取百位
    int b = n % 100 / 10;   //获取十位
    int c = n % 10;   //获取个位
    if(a * a * a + b * b * b + c * c * c == n){   //判断是否是水仙花数
        cout << "YES";   //输出YES
    }else{   //否则
        cout << "NO";   //输出NO
    }
    return 0;
}

        代码已讲解完毕,以下为所有代码:

#include<bits/stdc++.h>
using namespace std;
int main(){
    int n;   //定义输入的变量
    cin >> n;   //获取输入,scanf()也可
    int a = n / 100;   //获取百位
    int b = n % 100 / 10;   //获取十位
    int c = n % 10;   //获取个位
    if(a * a * a + b * b * b + c * c * c == n){   //判断是否是水仙花数
        cout << "YES";   //输出YES
    }else{   //否则
        cout << "NO";   //输出NO
    }
    return 0;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

账号已停更

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值