用java 编写:首先,定义:水仙花数是一个3位数,它的每个数位上的数字的3次幂之和等于它本身。例如:1~3 程序要实现的功能是在屏幕上打出所有水仙花数: 要求: (1)禁止使用循环嵌套 (2)禁止使用除法运算 (3)禁止使用取余运算
时间: 2024-11-05 07:27:54 浏览: 4
java获取水仙花数并判断一个数是否为水仙花
在Java中编写一个不使用循环嵌套、除法和取余运算找出水仙花数的程序,我们可以利用条件判断和数学操作来进行。这里可以利用位移和按位与操作来达到目标。以下是代码示例:
```java
public class NarcissisticNumber {
public static void main(String[] args) {
for (int i = 100; i < 1000; i++) { // 限制在3位数范围内
int num = i;
int hundreds = (num / 100);
int tens = (num % 100) / 10;
int ones = num % 10;
// 使用位移和按位与操作替代乘方
if ((hundreds * Math.pow(100, 2) & 0x00FF) +
(tens * Math.pow(10, 2) & 0xFF) +
(ones * Math.pow(1, 2)) == num) {
System.out.println(num); // 打印出水仙花数
}
}
}
}
```
这个程序遍历100到999之间的每一个三位数,然后将每个数分解成百位、十位和个位。接着,通过位移和按位与操作计算每个数位的立方和,与原数做比较。如果相等,则说明这是一个水仙花数。
阅读全文