pta java 自恋的水仙花
时间: 2023-10-22 11:35:32 浏览: 159
下面是 PTA Java 题目中自恋的水仙花问题的解答:
问题描述:
自恋的水仙花是指一个三位数各位数字的立方和等于该数本身。编写程序,寻找所有自恋的水仙花。
输入格式:
无
输出格式:
输出所有自恋的水仙花,每行一个。
样例输出:
153
370
371
407
解题思路:
这道题可以使用双重循环枚举三位数,然后判断每个三位数是否是自恋的水仙花。
对于一个三位数 $n$,我们可以先分解出它的个位、十位和百位,分别为 $a$、$b$ 和 $c$。然后判断 $n$ 是否等于 $a^3 + b^3 + c^3$,如果相等,则说明 $n$ 是一个自恋的水仙花。
Java 代码实现:
public class Main {
public static void main(String[] args) {
for (int i = 100; i < 1000; i++) {
int a = i / 100;
int b = i / 10 % 10;
int c = i % 10;
if (i == a * a * a + b * b * b + c * c * c) {
System.out.println(i);
}
}
}
}
相关问题
java打印所有的水仙花数pta
水仙花数是指一个三位数,其各位数字立方之和等于该数本身。例如,153是一个水仙花数,因为1^3 + 5^3 + 3^3 = 153。
在Java中,可以编写一个程序来找出并打印所有小于某个给定限制的水仙花数。下面是一个简单的示例:
```java
public class NarcissisticNumber {
public static void main(String[] args) {
int limit = 1000; // 设置查找范围
for (int number = 100; number < limit; number++) { // 从100开始到limit - 1
if (isNarcissistic(number)) { // 如果是水仙花数
System.out.println(number); // 打印它
}
}
}
// 检查是否为水仙花数
private static boolean isNarcissistic(int num) {
int sum = 0;
int temp = num;
while (temp != 0) {
int digit = temp % 10;
sum += Math.pow(digit, 3);
temp /= 10;
}
return sum == num;
}
}
```
在这个例子中,`isNarcissistic()`函数计算输入数字各位的立方和,如果等于原数,则返回`true`,表示它是水仙花数。
c语言pta水仙花数
C语言中,判断一个数字是否为“水仙花数”(也称为纳皮尔's 玫瑰数或哈雷数),是指该数的每个位上的数字立方和等于原数本身。例如,153是一个水仙花数,因为1^3 + 5^3 + 3^3 = 153。
下面是一个简单的C程序示例,用于检查给定的整数是否为水仙花数:
```c
#include <stdio.h>
int is Narcissistic(int num) {
int sum = 0;
while (num != 0) {
int digit = num % 10; // 取余得到个位数
sum += digit * digit * digit; // 累加立方
num /= 10; // 移除个位
}
return sum == num; // 如果累加后的结果等于原始数,就是水仙花数
}
int main() {
int number;
printf("请输入一个整数:");
scanf("%d", &number);
if (is Narcissistic(number)) {
printf("%d是水仙花数。\n", number);
} else {
printf("%d不是水仙花数。\n", number);
}
return 0;
}
```
阅读全文