水仙花数判断讲解

Posted whl666

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了水仙花数判断讲解相关的知识,希望对你有一定的参考价值。

今天要讲解的这道题是 水仙花数判断

题目要求

本题要求实现一个函数,判断任一整数是否为水仙花数(必须是三位数,且数的每一位上数字的立方和与数本身相等)。例如153=1^3+5^3+3^3=1+125+27=153,而1或155则不是水仙花数。如果是水仙花数,则函数返回1,否则返回0.

函数接口定义:

int func(const int N);

其中N是用户传入的参数。N的值不超过int类型的范围。如果参数N是水仙花数,则返回1,否则返回0。

裁判测试程序样例:

#include <stdio.h>
int func(const int N);
int main()
{
 int N;
 scanf("%d", &N);
 printf("%d
", func(N));
return 0;
}

/* 请在这里填写答案 */

输入样例:

153

输出样例:

1

解题思路

  • 根据题目要求,定义一个函数func()
  • 定义变量n,sum
  • 因为需要求一个三位数的整数各位的立方和,所以我们要分离每一位上的数,用到表达式sum+=(n%10) * (n%10) * (n%10),因为需要对每一位数求立方,所以此表达式需循环,并且我们要求到下一位,用到表达式n/=10,在求了立方和的基础上,我们要进行判断是否等于输入值

题目代码

技术图片

涉及知识点

1.给n赋值为N,因为n是形参,N是实参,输入值实际是N,我们要判断的也是输入值N

2。while语句,这是一个新的循环语句,括号里面表示的是条件,我代码中写的是while(n),它也就相当于while(n!=0),这是一种简便写法,计算机也会自动去给我们判断,当条件判定为‘是’时,循环进行,否则跳出循环

3.表达式sum+=(n%10) * (n%10) * (n%10)与n/=10,这里用的取余的方法求各位数立方的和,因为变量n,sum定义为整型,取结果时,计算机会自动给我们取整数,比如153%10还余3,sum表达式就会求3的立方,接着153/10=15.3,15.3再次取余时,结果为5,以此循环,求得立方和

4.最后进行判断,并返回结果

以上是关于水仙花数判断讲解的主要内容,如果未能解决你的问题,请参考以下文章

水仙花数讲解

用vs来写一段判断是不是水仙花数的代码

c语言:遍历水仙花数n,判断是不是为素数,并返回结果。

用python语言来判断一个数是否是水仙花数?

C++输入一个3位数,判断它是不是是水仙花数。所谓水仙花数就是该数各位上数字的立方和等于该数本身

如何判断一个数是水仙花数