Java随机生成若干个三位数,并求出其中的水仙花数

有个朋友问怎么做,顺手弄了下。。。

题设:定义一个类,该类中有一个整型数组,类中定义一个方法随机生成一个元素值为三位正整数的数组并求出其中的水仙花数,数组的元素的个数由参数指定。定义一个参数为整数类型的构造函数初始化数组元素个数。
编写应用程序,使用类中定义的各种方法并将结果输出

Shuxianhuashu.java源代码:


public class Shuixianhuashu {
static int[] ss;

// 构造方法初始化长度
public Shuixianhuashu(int length) {
   ss = new int[length];
   initArray();
}

public static void main(String[] args) {
   Shuixianhuashu sh = new Shuixianhuashu(2000);// 生成指定数量的三位随机数
   // 如果数字是水仙花数则输出结果
   int flag = 0; // 标志,记录是否生成了水仙花数
   for (int i = 0; i < ss.length; i++) {
    if (sh.isShui(ss[i])) {
     flag++;
     System.out.println("找到水仙花数,它是数组中的第 " + (i + 1) + " 个元素,它的值是:"
       + ss[i]);
    }
   }
   if (flag == 0) {
    System.out.println("******很遗憾,本次没有随机到水仙花数。");
   } else {
    System.out.println("******不错,本次随机生成了 " + flag + " 个水仙花数。");
   }
}

// 初始化数组,生成指定数量的三位随机数
public void initArray() {
   for (int i = 0; i < ss.length; i++) {
    double d = 0;
    do {
     d = Math.random();
    } while (d < 0.1);
    ss[i] = (int) (d * 1000);
   }
   System.out.println("******初始化完毕,一共生成 " + ss.length + " 个三位随机数。");
}

// 判断是否水仙花数
public boolean isShui(int x) {
   if (x < 100 || x >= 1000)
    return false;
   String s = x + "";
   int a = Integer.parseInt(s.substring(0, 1));
   int b = Integer.parseInt(s.substring(1, 2));
   int c = Integer.parseInt(s.substring(2, 3));
   if (Math.pow(a, 3) + Math.pow(b, 3) + Math.pow(c, 3) == x)
    return true;
   else
    return false;
}
}

转载于:https://www.cnblogs.com/rayy/archive/2009/12/25/4399761.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值