У овом примеру ћете научити да пронађете све Армстронгове бројеве између две целине које је унео корисник.
Да бисте разумели овај пример, требало би да имате знање о следећим темама програмирања на Ц:
- Ц иф… елсе Изјава
- Ц за Лооп
Позитивни цели број назива се Армстронгов број (реда н) ако
abcd… = an + bn + cn + dn +
У случају Армстронгова броја од 3 цифре, збир коцки сваке цифре једнак је самом броју. На пример, 153 је Армстронгов број јер
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; )
Оутпут
Унесите два броја (интервале): 200 2000 Армстронг бројеви између 200 и 2000 су: 370 371 407 1634
У програму се спољна петља понавља од (ниска + 1) до (висока - 1) . У свакој итерацији се проверава да ли је број Армстронгов број или не.
Унутар спољне петље прво се израчуна број цифара целог броја и ускладишти у count
. Збир снаге појединачних цифара чува се у променљиви резултата.
Ако је број једнак result
, број је Армстронгов број.
Напомена: У свакој итерацији спољне петље треба да ресетујете број и резултат на 0.