C语言:三位的水仙花数: 输入一个三位的正整数n, 输出100~n范围内所有的水仙花数。 用函数判断一个整数是不是水仙花数,是返回1,不是返回0。 主函数调用该函数,实现输出100~n之间的所有水仙花数。
时间: 2024-05-14 09:14:52 浏览: 130
#include <stdio.h>
#include <math.h>
int isNarcissistic(int n);
int main()
{
int n;
printf("请输入一个正整数n:");
scanf("%d", &n);
printf("100~%d范围内的水仙花数有:", n);
for (int i = 100; i <= n; i++)
{
if (isNarcissistic(i))
{
printf("%d ", i);
}
}
return 0;
}
int isNarcissistic(int n)
{
int sum = 0;
int temp = n;
while (temp)
{
int digit = temp % 10;
sum += pow(digit, 3);
temp /= 10;
}
return sum == n;
}
相关问题
三位的水仙花数: 输入一个三位的正整数n, 输出100~n范围内所有的水仙花数。 用函数判断一个整数是不是水仙花数,是返回1,不是返回0。 主函数调用该函数,实现输出100~n之间的所有水仙花数。 三位的水仙花数是指,该数的三个数字立方之和等于该数本身 c语言
在C语言中,我们可以创建一个函数来判断一个三位数是否为水仙花数。首先,我们需要编写一个名为is_armstrong_number
的函数,接收一个整数作为参数。以下是实现的步骤:
#include <stdio.h>
#include <stdbool.h>
// 函数用来检查一个数是否是水仙花数
bool is_armstrong_number(int num) {
int original_num, remainder, sum = 0;
// 将数字分解成每一位
original_num = num;
while (original_num != 0) {
remainder = original_num % 10;
sum += pow(remainder, 3); // 计算每位立方和
original_num /= 10;
}
// 如果原数和其各位立方和相等,则为水仙花数
if (sum == num)
return true;
else
return false;
}
// 主函数,遍历并打印100到n范围内的水仙花数
void print_armstrong_numbers(int n) {
for (int i = 100; i <= n; ++i) {
if (is_armstrong_number(i))
printf("%d ", i);
}
printf("\n");
}
int main() {
int input_n;
printf("请输入一个三位正整数n: ");
scanf("%d", &input_n);
// 检查输入是否合法
if (input_n < 100 || input_n > 999) {
printf("输入值超出范围,仅支持三位数。\n");
return 0;
}
// 打印指定范围内的水仙花数
print_armstrong_numbers(input_n);
return 0;
}
三位的水仙花数: 输入一个三位的正整数n, 输出100~n范围内所有的水仙花数。 用函数判断一个整数是不是水仙花数,是返回1,不是返回0。 主函数调用该函数,实现输出100~n之间的所有水仙花数。 三位的水仙花数是指,该数的三个数字立方之和等于该数本身。用C语言编写
你可以通过以下C语言代码来找出并输出100到n范围内的所有三位水仙花数。这个程序定义了一个名为is narcissistic
的函数,用于判断一个数是否是水仙花数,然后在主函数main
中遍历指定范围并打印水仙花数。
#include <stdio.h>
// 判断一个数是否是水仙花数
int is_narcissistic(int num) {
int digits[3], sum = 0;
// 分离每个位上的数字
while (num > 0) {
digits[2] = num % 10;
sum += digits[2] * digits[2] * digits[2];
num /= 10;
}
// 如果sum等于原数,返回1,否则返回0
return (sum == num) ? 1 : 0;
}
// 主函数,输出100到n之间的水仙花数
void find_narcissists(int m, int n) {
for (int i = m; i <= n; i++) {
if (is_narcissistic(i)) {
printf("%d\n", i);
}
}
}
int main() {
int start_num = 100, end_num;
printf("请输入一个三位数n作为结束值:");
scanf("%d", &end_num);
find_narcissists(start_num, end_num);
return 0;
}
当你运行这个程序时,它会提示你输入一个三位数作为结束值n,然后输出从100到n之间所有的水仙花数。注意,这个代码假设输入的是正整数。
相关推荐
















