c语言水仙花数pta
时间: 2023-11-08 10:05:09 浏览: 145
好的,关于 C 语言水仙花数的 PTA 题目,我可以给出以下代码示例:
```c
#include <stdio.h>
int main()
{
int m, n, i, j, k, sum;
scanf("%d %d", &m, &n);
for (i = m; i <= n; i++) {
j = i / 100; // 百位数
k = i % 100 / 10; // 十位数
sum = j * j * j + k * k * k + (i % 10) * (i % 10) * (i % 10); // 求和
if (sum == i) {
printf("%d\n", i);
}
}
return 0;
}
```
这段代码可以输出区间 `[m, n]` 中的所有水仙花数。
相关问题
c语言打印水仙花数pta
在C语言中,水仙花数是指一个三位数,其各位数字立方之和等于该数本身。例如,153是一个水仙花数,因为1^3 + 5^3 + 3^3 = 1 + 125 + 27 = 153。以下是编写一个简单的C程序来检查并打印出所有的水仙花数:
```c
#include <stdio.h>
// 函数定义,用于计算一个整数是否是水仙花数
int is narcissistic(int num) {
int sum = 0;
int temp = num;
// 取百位、十位和个位数字
while (temp > 0) {
int digit = temp % 10; // 获取个位
sum += digit * digit * digit; // 累加立方
temp /= 10; // 移除个位
}
return sum == num; // 如果累加结果等于原数,返回1,否则返回0
}
// 主函数,遍历并打印所有水仙花数
void print_narcissistic_numbers() {
for (int i = 100; i <= 999; ++i) { // 遍历三位数范围
if (is_narcissistic(i)) {
printf("%d ", i); // 打印水仙花数
}
}
printf("\n");
}
int main() {
print_narcissistic_numbers();
return 0;
}
```
当你运行这个程序时,它会输出所有的水仙花数,如153, 370, 371, 407等。
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;
}
```
阅读全文