📅  最后修改于: 2023-12-03 15:30:15.504000             🧑  作者: Mango
阿姆斯壮数是一类特殊的自然数,它的每个数位上的数字的立方和等于该数本身,例如:
153 = 1^3 + 5^3 + 3^3
在这个程序中,我们将输入两个数字作为间隔,然后显示这两个数字之间所有的阿姆斯壮数。
isArmstrong()
,来检查一个数是否为阿姆斯壮数。该函数接受一个参数 n
,表示需要检查的数,返回一个布尔值,表示该数是否为阿姆斯壮数。int isArmstrong(int n) {
int temp = n, sum = 0;
while (temp > 0) {
int digit = temp % 10;
sum += digit * digit * digit;
temp /= 10;
}
return (sum == n);
}
main()
函数中调用该函数,来查找指定范围内的所有阿姆斯壮数。首先,我们需要输入两个整数 start
和 end
作为范围。int main() {
int start, end;
printf("Enter start and end numbers: ");
scanf("%d %d", &start, &end);
isArmstrong()
函数来判断它们是否为阿姆斯壮数。如果是,就打印出来。 printf("Armstrong numbers between %d and %d are: ", start, end);
for (int i = start; i <= end; i++) {
if (isArmstrong(i)) {
printf("%d ", i);
}
}
printf("\n");
return 0;
}
#include <stdio.h>
int isArmstrong(int n) {
int temp = n, sum = 0;
while (temp > 0) {
int digit = temp % 10;
sum += digit * digit * digit;
temp /= 10;
}
return (sum == n);
}
int main() {
int start, end;
printf("Enter start and end numbers: ");
scanf("%d %d", &start, &end);
printf("Armstrong numbers between %d and %d are: ", start, end);
for (int i = start; i <= end; i++) {
if (isArmstrong(i)) {
printf("%d ", i);
}
}
printf("\n");
return 0;
}
Enter start and end numbers: 1 1000
Armstrong numbers between 1 and 1000 are: 1 153 370 371 407