水仙花数判断讲解

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

题目要求

本题要求实现一个函数,判断任一整数是否为水仙花数(必须是三位数,且数的每一位上数字的立方和与数本身相等)。例如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\n", 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.最后进行判断,并返回结果

原文地址:https://www.cnblogs.com/whl666/p/11814139.html

时间: 2024-09-29 08:34:33

水仙花数判断讲解的相关文章

javaScript实现回文数、水仙花数判断和输出斐波那契数列

    // 判断一个数是不是回文数                    // 方法一:先将数字转换成字符串,然后依次判断第一个和最后一个数字,第二个和倒数第二个数字...是否相等     function PalindromeNumber1(num){         var str = num.toString();         var flag = true;         var len = str.length;         for(var i = 0; i < (len 

水仙花数讲解

题目:打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身.例如:153是一个"水仙花数",因为153=1的三次方+5的三次方+3的三次方. 代码及讲解如下: def cal_data(m,n): sum = 0 :定义一个变量来接受和 tmp = [] :将打印出的水仙花数放到一个列表中 for i in range(m, n): :区域,一个范围数值进行循环.如,100:10000 for j in rang

js算法集合(一) 水仙花数 及拓展(自幂数的判断)

js算法集合(一) ★ 最近有些朋友跟我说对js中的一些算法感到很迷惑,知道这个算法到底是怎么回事,但是就是不会用代码把它写出来,这里我跟大家分享一下做水仙花数的算法的思路,并对其扩展到自幂数的算法,希望能对大家有所帮助. 1.验证一个数是否为水仙花数 ①要写水仙花数的算法,我们首先来了解一下什么是水仙花数,水仙花数是指一个 3位正整数 ,它的每个位上的数字的 3次幂之和等于它本身.(例如:1^3 + 5^3+ 3^3 = 153): ②了解了什么是水仙花数我们就开始分析该怎么下手.通过定义来看

Java杂谈之二----怎样判断一个数是水仙花数以及穷举水仙花数

首先明确一下什么是水仙花数 百度说,水仙花数指一个n位数(n>=3),它的每个位上的数字的n次幂之和等于它本身 例如:1^3+5^3+3^3=153 水仙花数只是自幂数的一种,严格来说三位数的3次幂数才能成为水仙花数. 但其实也分一位自幂数,两位自幂数,三位自幂数,四位自幂数等等. 所以鉴于水仙花数的定义的不确定和模糊性 以下代码示例不仅限于三位数的水仙花数,主要涉及的是思想问题. 类名:JavaNarcissus 构造函数:JavaNarcissus() 判断一个数是否为水仙花数:IsNarc

写一个函数,判断一个正整数是否是水仙花数(扩展n位的自幂数)

//参数number是待判断的正整数,n为正整数位数(3位则为水仙花数),满足条件则返回1,反之返回0 bool isZiMiShu(int number, int n) { int __num = number, a[n], sum = 0, i = 0; while (number > 0) { a[i] = number % 10; sum += pow(a[i], n); number = (number - number % 10) / 10; i++; } return __num

C#:判断100--999之前的水仙花数

//判断100--999之前的水仙花数.水仙花数举例:153=13+53+33. using System;public class Program  {    public static void Main()      {         int a,b,c,d,e;         for(int num=100;num<=999;num++)            {               a=num%10;//得到个位数字               c=num/10%10;//

判断水仙花数,质数(素数)

#include<stdio.h> #include<stdbool.h> //水仙花数--各位立方和等于本身 void sXh() { int x,y,z; printf("查找出三位数的水仙花数\n"); for(int i=100; i<=999; i++) { x = i/100; y = i%100/10; z = i%100%10; if(i == x*x*x + y*y*y + z*z*z) printf("%d,",i)

水仙花数的判断问题

问题描述:编写一个方法判断所传递参数是否为水仙花数 涉及变量: num:int型变量,所传递参数,要判断是否为水仙花数的对象 list:String型变量,将num转化为字符串类型,为了将num各个数字分开的中转站 number:int[]型变量,存放num的各位上的数字 sum:int型变量,用于存储各位的立方之和 大致思路: 水仙花数:一个数各位上的数字的立方之和等于其本身,该数被称为水仙花数. 举个例子,153,各位上的数字分别是1,5,3,  1^3+5^3+3^3==153,故其为水仙

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

总所周知水仙花数是指一个n位正整数(n>=3),它们的每位数上的数字的n次幂次方之和等于它本身.(例如:1^3+5^3+3^3=153). 接下来我们开始让用户输入一个值,来判断用户输入的值是不是水仙花数 .