Java编程:素数、水仙花数与π值计算

需积分: 0 0 下载量 57 浏览量 更新于2024-09-09 收藏 1.13MB DOCX 举报
"Java编程实践与概念解析" 在Java编程中,我们经常遇到各种问题和挑战,上述代码示例涵盖了不同的编程知识点,包括素数判断、水仙花数的寻找、π值的计算以及泛型的应用。 1. **素数判断**: 在`J_Sushu`类中,程序用于找出大于指定整数m的所有k个素数。素数是大于1且只有1和自身两个正因数的自然数。代码通过输入m和k,然后使用while循环和for循环遍历大于m的整数。对于每个数,检查从2到该数本身是否都能整除,如果不能则标记为素数。这里的`flag`变量用来记录当前数是否为素数,如果 `(m+1)%i == 0`,说明m+1不是素数,将flag置为0,否则如果flag不为0,则输出该素数并更新m。 2. **水仙花数**: `J_Shuixianhua`类展示了如何找到0到999之间的所有水仙花数。水仙花数是三位数,其每一位数字的立方和等于该数本身。代码通过for循环遍历100到999,分别获取百位、十位和个位的数字,然后检查这个数是否满足水仙花数的条件。如果满足,就输出该数。 3. **π值的计算**: 在`J_pi`类中,使用了一个无穷级数来估算π的值,即`π/4 = 1 - 1/3 + 1/5 - 1/7 + ...`,直到最后一项的绝对值小于10^-5为止。代码通过while循环累加级数的每一项,每次迭代时n增加2(因为级数的项是奇数序列),同时`sign`变量用于切换每项的正负号。最后乘以4得到π的近似值。 4. **泛型的应用**: 泛型是Java中的一种强大的特性,允许在类、接口和方法中使用类型参数,从而实现更灵活的类型约束和代码重用。虽然这部分代码没有直接给出,但描述中提到了设计一个泛型接口,包含计算面积的方法,然后创建正方形和圆的类去实现这个接口。泛型类或接口可以让任何类型的对象作为参数,只要它们符合接口的要求。例如,可以定义一个名为`Shape<T>`的接口,其中`T`是类型参数,表示形状的面积类型,然后正方形类`Square`和圆类`Circle`实现`Shape<Integer>`和`Shape<Double>`,分别用于整数面积和双精度浮点面积。 通过这些实例,我们可以看到Java在解决实际问题中的灵活性和表达能力,无论是基础的数学运算还是面向对象的设计,Java都能提供强大的支持。