Chương trình C để hiển thị số Armstrong giữa hai khoảng thời gian

Trong ví dụ này, bạn sẽ học cách tìm tất cả các số Armstrong giữa hai số nguyên do người dùng nhập vào.

Để hiểu ví dụ này, bạn nên có kiến ​​thức về các chủ đề lập trình C sau:

  • Câu lệnh C if… else
  • C cho Vòng lặp

Một số nguyên dương được gọi là số Amstrong (bậc n) nếu

 abcd… = an + bn + cn + dn + 

Trong trường hợp một số Amstrong có 3 chữ số, tổng các lập phương của mỗi chữ số bằng chính số đó. Ví dụ: 153 là số Armstrong vì

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

Trước khi thử chương trình này, hãy tìm hiểu cách kiểm tra xem một số nguyên có phải là số Armstrong hay không.

Các số Armstrong giữa hai số nguyên

 #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; )

Đầu ra

 Nhập hai số (khoảng): 200 2000 Số Armstrong từ 200 đến 2000 là: 370 371 407 1634 

Trong chương trình, vòng lặp ngoài được lặp từ (thấp + 1) đến (cao - 1) . Trong mỗi lần lặp, nó được kiểm tra xem số có phải là số Armstrong hay không.

Bên trong vòng lặp bên ngoài, số chữ số của một số nguyên được tính toán đầu tiên và được lưu trữ trong count. Và, tổng lũy ​​thừa của các chữ số riêng lẻ được lưu trữ trong biến kết quả.

Nếu số bằng resultthì số đó là số Amstrong.

Lưu ý: Bạn cần đặt lại số đếm và kết quả là 0 trong mỗi lần lặp của vòng lặp ngoài.

thú vị bài viết...