📜  C程序以显示两个间隔之间的阿姆斯壮数

📅  最后修改于: 2020-10-04 11:16:51             🧑  作者: Mango

###### 在此示例中，您将学习查找用户输入的两个整数之间的所有Armstrong数字。

``````abcd... = an + bn + cn + dn +
``````

``````153 = 1*1*1 + 5*5*5 + 3*3*3
``````

##### 两个整数之间的阿姆斯壮数
``````#include
#include
int main() {
int low, high, number, originalNumber, rem, count = 0;
double result = 0.0;
printf("Enter two numbers(intervals): ");
scanf("%d %d", &low, &high);
printf("Armstrong numbers between %d and %d are: ", low, high);

// iterate number from (low + 1) to (high - 1)
// In each iteration, check if number is Armstrong
for (number = low + 1; number < high; ++number) {
originalNumber = number;

// number of digits calculation
while (originalNumber != 0) {
originalNumber /= 10;
++count;
}

originalNumber = number;

// result contains sum of nth power of individual digits
while (originalNumber != 0) {
rem = originalNumber % 10;
result += pow(rem, count);
originalNumber /= 10;
}

// check if number is equal to the sum of nth power of individual digits
if ((int)result == number) {
printf("%d ", number);
}

// resetting the values
count = 0;
result = 0;
}

return 0;
}``````

``````Enter two numbers(intervals): 200
2000
Armstrong numbers between 200 and 2000 are: 370 371 407 1634 ``````