用封装完成100到10000以内的水仙花数

public boolean is(int num){         //定义一个方法
    int count=(num+"").length();         //把num转换成String型,在算出他的字符长度,赋予count
    int num1=num;            //把num的值备份num1
    int sum=0;                //定义一个变量,来储存结果
    while(num>0){                //循环大于0的值
      int b=1;                  //定义一个次幂
      int a=num%10;                  //求出他的个位数
      for(int i=1;i<=count;i++){         //循环他的字符长度
        b*=a;                       /*这里的循环是
                        第一次循环:
                        b=1 然后b*a=1*a

                        第二次循环:
                        b这个时候就等于a了 b*a=a*a

                        第三次循环:
                        b就等于a*a b*a=a*a*a
                        */
      }
      sum+=b;            //这里是把sum的值加上b的值
      num/=10;           //这里是num的值除以10   因为是整型所以没有小数点后的数     所以例如是百位的数循环完这个就是十位的数了
    }
    if(sum==num1){             //判断结果是不是之前备份的数
    return true;            //如果是的话就是正确的
  }
  return false;
}

原文地址:https://www.cnblogs.com/skjy/p/9160262.html

时间: 2024-10-12 21:21:25

用封装完成100到10000以内的水仙花数的相关文章

如何用C#寻找100到999的所有水仙花数?

首先解释一下何为水仙花数:水仙花数只是自幂数的一种,严格来说是三位数的个位.十位.百位的3次幂数相加等于原来的数字,称为水仙花数.(例如:1^3 + 5^3+ 3^3 = 153) 那么如何通过C#语句来解决这个问题呢? 分析:想要找到百位的水仙花数,要解决的问题由两个,第一个是如何让计算机正确分离出百位数的个位.十位.百位的数字.第二个是如何将其不断循环让100到999都能经过检验. 第一个问题:将这个数值类型定义为整型int(这种数据类型的数字是没有小数点的) 最高位数字--对100整除,则

编写一个程序找出100~999之间所有的水仙花数

如果一个3位数等于其各位的立方和,称该数为水仙花数. 如,所以407是一个水仙花数,编写一个程序找出100~999之间所有的水仙花数. 1 #include<stdio.h> 2 #include<stdlib.h> 3 //判断水仙花数,是则返回1 4 int isNarcissus(int n); 5 6 int main() 7 { 8 int i; 9 for(i = 100; i < 1000; i++) 10 if(isNarcissus(i)) 11 print

求100到999之间的水仙花数

所谓"水仙花数" ,是指一个 3 位数,其各位 数字立方和等于该数本身 所谓"水仙花数" ,是指一个 3 位数,其各位 数字立方和等于该数本身 for(int a=1;a<=9;a++){ for(int b=0;b<=9;b++){ for(int c=0;c<=9;c++){ if(a*a*a+b*b*b+c*c*c==a*100+b*10+c){ System.out.println(a*100+b*10+c); } } } } 所谓&quo

【python】编写一个程序,求100~999之间的所有水仙花数

编写一个程序,求100~999之间的所有水仙花数. 如果一个三位数等于其各位数字的立方和,则称这个数为水仙花数. 例如:153=1^3+5^3+3^3 因此153就是一个水仙花数 代码如下 #水仙花数 for i in range(100, 1000): sum = 0 temp = i while temp: sum = sum + (temp%10)**3 temp //=10 if sum == i: print(i) 原文地址:https://www.cnblogs.com/SiminL

使用C#语言实现输出1000以内的水仙花数

所谓水仙花数,是指一个n位数(n>=3),它的每个位上的数字的n次幂之和等于它本身,例如:153=13+53+33.首先,我们应该解决的关键问题是,怎么通过C#语言判断一个数是不是水仙花数?既然水仙花数的定义是每个位上的数字的n次幂之和等于它本身,那么我们需要先分别得到一个数每个位上的数字,然后判断每个位上的数字的n次幂之和是否等于等于它本身.取出百位的数字可以使用 int a=i/100%10:(其中变量a存储百位数字.先将变量i中的值除以100,因为被除数和除数都是int类型的值,所以得到值

JS 1000以内的水仙花数 (三位数 各个数字的立方和等于本身 例如 1*1*1 + 5*5*5 + 7*7*7 = 157)

<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> </head> <body> </body> </html> <script type="text/javascript"> for(i=100;i<1000;i++){ var a = par

0-999以内的水仙花数

#include <stdio.h> #include<stdlib.h> int main() {   int a, b, c;  int i = 0;  for (i = 0; i < 1000; i++)  {   a = i / 100;//取百位   b = i % 100 / 10;//取十位   c = i % 10;//取个位   if (a * 100 + b * 10 + c == a*a*a + b*b*b + c*c*c)    printf(&quo

编写一个Java应用程序,该应用程序包括2个类:Print类和主类E。Print 类里有一个方法output()功能是输出100 ~ 999之间的所有水仙花数(各位数字的 立方和等于这个三位数本身,如: 371 = 33 + 73 + 13。)在主类E的main方法中来 测试类Print。

package com.homework.zw; //print类部分 public class Print { void output() { for(int i =100;i<=999;i++) { if(Math.pow(i/100,3)+Math.pow(i%10,3)+Math.pow(i/10%10, 3)==i) { System.out.println(i); } } } } package com.homework.zw; //主类E部分 public class E { pu

计算100-1000以内的水仙花数

for (int i = 100; i <=999; i++) {    int a = i / 100 % 10;    int b = i / 10 % 10;    int c = i % 10; if (a * a * a + b * b * b + c * c * c == i) {    Console.WriteLine(i); } } 原文地址:https://www.cnblogs.com/-Ellen/p/9865690.html