设计函数 boolisSxh(int n)判断整数n是否是水仙花数,若是则返回 true,否则返回 false。 编写 main0函数输出所有的水仙花数
时间: 2024-12-15 19:30:48 浏览: 4
设计一个名为 `boolIsSxh` 的函数,用于判断给定的整数 `n` 是否是水仙花数,可以按以下步骤实现:
```cpp
#include <iostream>
using namespace std;
// 函数 boolisSxh 判断水仙花数
bool boolIsSxh(int n) {
if (n < 100 || n > 999) {
return false; // 水仙花数范围限定在三位数内
}
int百位 = n / 100;
int十位 = (n % 100) / 10;
int个位 = n % 10;
// 比较每一位数字的立方和与原数是否相等
return (pow(int 百位, 3) + pow(int 十位, 3) + pow(int 个位, 3)) == n;
}
// 主函数 main0 输出所有水仙花数
void main0() {
for (int i = 100; i <= 999; ++i) { // 遍历三位数范围
if (boolIsSxh(i)) {
cout << i << " 是水仙花数" << endl;
}
}
}
```
在这个程序中,`main0` 函数通过循环遍历从 100 到 999 的每一个整数,并调用 `boolIsSxh` 函数检查每个数是否是水仙花数。如果是,则打印该数及其标识。
相关问题
c语言设计函数 boolisSxh(int n)判断整数n是否是水仙花数,若是则返回 true,否则返回 false。 编写 main0函数输出所有的水仙花数
在C语言中,水仙花数是指那些所有位上的数字立方和等于原数本身的三位数。为了编写一个名为`boolisSxh`的函数来判断一个整数`n`是否是水仙花数,并在`main`函数中输出所有这样的数字,你可以按照下面的方式来实现:
```c
#include <stdio.h>
// 定义判断是否是水仙花数的函数
bool isSxh(int n) {
if (n < 100 || n > 999) {
return false; // 水仙花数范围限定在100到999之间
}
int digits[3]; // 存储百位、十位和个位
int sum = 0;
// 分割数字并计算立方和
digits[0] = n / 100;
digits[1] = (n % 100) / 10;
digits[2] = n % 10;
for (int i = 0; i < 3; i++) {
sum += pow(digits[i], 3);
}
// 判断立方和是否等于原数
return sum == n;
}
// 主函数 main
int main() {
printf("水仙花数:\n");
for (int i = 100; i <= 999; i++) {
if (isSxh(i)) {
printf("%d ", i); // 输出水仙花数
}
}
printf("\n");
return 0;
}
```
在这个程序中,`isSxh`函数首先检查输入的数是否在水仙花数范围内,然后将数分解成百位、十位和个位,计算它们各自的立方和并与原数比较。如果相等,则返回true,表示它是水仙花数;否则,返回false。
在`main`函数中,通过一个循环遍历从100到999的所有三位数,调用`isSxh`函数检查每个数,并打印出符合条件的水仙花数。
定义函数isNarcissus(n:int):bool,判断一个数是否是水仙花数,是水仙花数则返回True,否则返回False。在测试函数main()中用循环将三位数的水仙花数筛选出来
水仙花数指的是一个n位数,其各个位上数字的n次方之和等于这个数本身。例如,153是一个水仙花数,因为1^3 + 5^3 + 3^3 = 153。
以下是代码实现:
```python
def isNarcissus(n: int) -> bool:
"""
判断一个数是否是水仙花数
"""
num_str = str(n)
n_len = len(num_str)
total = 0
for i in range(n_len):
total += int(num_str[i]) ** n_len
return total == n
def main():
"""
筛选三位数的水仙花数
"""
for i in range(100, 1000):
if isNarcissus(i):
print(i)
if __name__ == '__main__':
main()
```
输出结果为:
```
153
370
371
407
```
阅读全文