文章目录
- 前言
- 一、题目
- 二、思路分析:
- 二、代码分析
- 总结
前言
水仙花性喜温暖、湿润、排水良好的环境。在中国已有一千多年栽培历史,为传统观赏花卉。
水仙花数(Narcissistic number)也被称为超完全数字不变数(pluperfect digital invariant, PPDI)、自恋数、自幂数、阿姆斯壮数或阿姆斯特朗数(Armstrong number),水仙花数是指一个 3 位数,它的每个位上的数字的 3次幂之和等于它本身。例如:1^3 + 5^3+ 3^3 = 153。
一、题目
问题描述
打印所有100至999之间的水仙花数。所谓水仙花数是指满足其各位数字立方和为该数字本身的整数,例如 153=1^3 + 5^3 + 3^3。
样例输出
153
xxx
xxx
————————————————
二、思路分析:
小知识点: “/
”通常可以去掉尾数,而“%
”通常都用于获得尾数.
二、代码分析
使用for循环遍历100~1000之间的数字,再用if选择语句进行判断。
代码如下(示例):
//水仙花数
#include<iostream>
using namespace std;
int main()
{
int a;//百
int b;//十
int c;//个
//找出100~999之间的所有水仙花数
for(int i=100;i<1000;i++){
c=i%10; //获得个位
b=i/10%10;//获得十位
a=i/100; //获得百位
//判断是否为水仙花数
if(a*a*a+b*b*b+c*c*c==i){ //或者i = pow(a, 3) + pow(b, 3) + pow(c, 3);
cout<<i<<endl;
}
system("pause");
return 0;
}
总结
- 水仙花数是三位数。
- 它的各个位数的立方和等于该数。
- 在100~1000之间有4个水仙花数,分别是153,370,371,407。 我们主要通过求余求模的操作来完成。 我们可以按照题意,最主要的是求出各个位的数来,通过求余,求模来得到各个位的数。