Bu örnekte, kullanıcı tarafından girilen iki tam sayı arasındaki tüm Armstrong sayılarını bulmayı öğreneceksiniz.
Bu örneği anlamak için, aşağıdaki C programlama konuları hakkında bilgi sahibi olmalısınız:
- C if… else İfadesi
- Döngü için C
Pozitif bir tamsayı, Armstrong numarası olarak adlandırılır (n sırasına göre)
abcd… = an + bn + cn + dn +
Armstrong sayısının 3 basamaklı olması durumunda, her basamağın küplerinin toplamı, sayının kendisine eşittir. Örneğin, 153 bir Armstrong numarasıdır çünkü
153 = 1 * 1 * 1 + 5 * 5 * 5 + 3 * 3 * 3
Bu programı denemeden önce, bir tamsayının Armstrong sayısı olup olmadığını nasıl kontrol edeceğinizi öğrenin.
İki Tamsayı Arasındaki Armstrong Sayıları
#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; )
Çıktı
İki sayı girin (aralıklar): 200 2000 200 ile 2000 arasındaki Armstrong sayıları: 370371407 1634
Programda, dış döngü (düşük + 1) ' den (yüksek - 1)' e yinelenir . Her yinelemede, sayının bir Armstrong numarası olup olmadığı kontrol edilir.
Dış döngünün içinde, önce bir tamsayının basamak sayısı hesaplanır ve içinde saklanır count
. Ve, tek tek basamakların gücünün toplamı, sonuç değişkeninde saklanır.
Sayı eşitse result
, sayı bir Armstrong sayısıdır.
Not: Dış döngünün her yinelemesinde sayımı sıfırlamanız ve sonucu 0 yapmanız gerekir.