用封装完成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;
}

猜你喜欢

转载自www.cnblogs.com/skjy/p/9160262.html