用循环结构判断一个整数是否为“水仙花数”,一直提示输入,直到输入的数是水仙花数则退出程序。所谓“水仙花数”是指1个三位的整数,其各个为数字立方和等于该数本身。例如:153= 1*1*1 + 5*5*5 + 3*3*3 = 1+125+27。
时间: 2024-02-23 21:02:40 浏览: 24
好的,下面是使用 Python 语言实现的代码:
```python
while True:
num = int(input("请输入一个三位数:"))
if 100 <= num <= 999:
a = num // 100
b = num // 10 % 10
c = num % 10
if num == a ** 3 + b ** 3 + c ** 3:
print("是水仙花数!")
break
else:
print("不是水仙花数!")
else:
print("输入的不是三位数,请重新输入!")
```
使用 `while` 循环不断提示用户输入一个三位数,通过 `if` 判断输入的数是否在 100~999 范围内,如果不是则输出提示信息,重新提示输入;如果是,则计算出该数的个、十、百位数字,判断是否为水仙花数,如果是则输出提示信息并退出程序,否则输出提示信息,继续循环。
相关问题
用C语言判断一个数是否为水仙花数,要求使用for循环结构实现程序功能。
可以回答这个问题。以下是用C语言判断一个数是否为水仙花数的程序代码:
#include <stdio.h>
#include <math.h>
int main()
{
int num, originalNum, remainder, result = 0, n = 0;
printf("请输入一个正整数:");
scanf("%d", &num);
originalNum = num;
// 计算位数
while (originalNum != 0)
{
originalNum /= 10;
++n;
}
originalNum = num;
// 计算每个数字的n次方和
while (originalNum != 0)
{
remainder = originalNum % 10;
result += pow(remainder, n);
originalNum /= 10;
}
// 判断是否为水仙花数
if (result == num)
printf("%d 是水仙花数", num);
else
printf("%d 不是水仙花数", num);
return 0;
}
使用循环结构判断一个整数是否为“水仙花数”,一直提示输入,直到输入的数是水仙花数则退出程序。所谓“水仙花数”是指1个三位的整数,其各个为数字立方和等于该数本身。例如:153= 1*1*1 + 5*5*5 + 3*3*3 = 1+125+27。用Java编译
好的,以下是Java代码实现:
```java
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
while (true) {
System.out.print("请输入一个三位整数:");
int num = sc.nextInt();
if (isNarcissisticNumber(num)) {
System.out.println(num + "是水仙花数,程序退出。");
break;
} else {
System.out.println(num + "不是水仙花数,请继续输入。");
}
}
}
// 判断一个整数是否为水仙花数
public static boolean isNarcissisticNumber(int num) {
int sum = 0;
int temp = num;
while (temp > 0) {
int digit = temp % 10;
sum += digit * digit * digit;
temp /= 10;
}
return sum == num;
}
}
```
程序运行时,会一直提示用户输入一个三位整数,直到用户输入的数是水仙花数为止,程序才会退出。
注意,本程序使用了一个 `isNarcissisticNumber` 方法来判断一个整数是否为水仙花数。该方法采用了循环结构,每次取出该数的个位数,计算该位数的立方并累加到总和中,最后与原数比较,如果相等则说明是水仙花数,返回 true,否则返回 false。