水仙花数的判断问题

问题描述:编写一个方法判断所传递参数是否为水仙花数

涉及变量:

  num:int型变量,所传递参数,要判断是否为水仙花数的对象

  list:String型变量,将num转化为字符串类型,为了将num各个数字分开的中转站

  number:int[]型变量,存放num的各位上的数字

  sum:int型变量,用于存储各位的立方之和

大致思路:

  水仙花数:一个数各位上的数字的立方之和等于其本身,该数被称为水仙花数。

举个例子,153,各位上的数字分别是1,5,3,  1^3+5^3+3^3==153,故其为水仙花数。

在本算法中,我先将所给参数中的各个数字存放于数组中,再将数组中各个数字的立方之和与此数本身值相比较,

若相等则为水仙花数,否则不是。

要注意的一点是,由于我先将数字强制转换为String类型,再用charAt()方法分隔各个数字,

此时所分隔的数字经过强制转换后,其值为ASCII码值。

即(int)‘0‘==48,故要减去48,使之变为与数字值相等的值。

代码如下:

以上是我对判断水仙花数问题的一点看法,希望对各位有所帮助

190128 Rewivy

原文地址:https://www.cnblogs.com/rewivy/p/10332198.html

时间: 2024-10-04 19:06:51

水仙花数的判断问题的相关文章

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

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

筛选水仙花数

//水仙花数--个位的平方+十位的平方+百位的平方(等于==)该三位数 #include<stdio.h>int main(){ int ge,shi,bai; //从100开始筛选for(int i=100;i<1000;i++){ ge=i%10; shi=i/10%10; bai=i/100%10; if(a==ge*ge*ge+shi*shi*shi+bai*bai*bai){//水仙花数的判断条件 //输出 printf("%d\t",i); }} retu

水仙花数&amp;素数&amp;质因数分解的C语言实现

最近,我翻了一下之前的C语言教材,看了三个有意思的小程序,包括:寻找"水仙花数".判断某数是否为素数.对一个数进行质因数分解.我想把这三个东西放到一个程序中,便写下了此文. 算法步骤 1. 寻找"水仙花数". "水仙花数"是指一个三位数,其各位数字的立方和等于该数本身.例如:153是一个"水仙花数",因为153=1的三次方+5的三次方+3的三次方. 2. 判断某数是否为素数. 素数是指只能被1和它本身整除的数,判断一个数是否为

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

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

写一个函数,判断一个正整数是否是水仙花数(扩展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)

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

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

水仙花数判断讲解

今天要讲解的这道题是 水仙花数判断 题目要求 本题要求实现一个函数,判断任一整数是否为水仙花数(必须是三位数,且数的每一位上数字的立方和与数本身相等).例如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.