Yêu cầu:
– Tìm số Amstrong là một số có đặc điểm sau: số đó gồm n chữ số, tổng các lũy thừa bậc n của các chữ số đó và số đó.
Ví dụ: 153 = 1^3 + 5^3 + 3^3. Hãy tìm các số Amstrong nhỏ hơn 1000.
Phân tích:
– Dùng vòng lặp để kiểm tra điều kiện của sô Amstrong.
Code:
/************************************************************ * Author: VNCODING * History * 2014/03/17 first create VNCODING *************************************************************/ #include "stdio.h" #include "conio.h" #include "math.h" void main() { int i, j, k; for(i = 0; i <= 9; i++) for(j = 0; j <= 9; j++) for(k = 0; k <= 9; k++) { if(i == 0) { if(j == 0) { printf("\n %d^1 = %d", k, k); } else { if((10*j + k) == (pow((float)j, 2)+pow((float)k, 2))) printf("\n %d^2 + %d^2 = %d", j, k, 10*j+k); } } else { if((100*i + 10*j + k) == (pow((float)i, 3) + pow((float)j, 3) + pow((float)k, 3))) printf("\n %d^3 + %d^3 + %d^3 = %d", i, j, k, 100*i + 10*j + k); } } getch(); }
Kết quả:
0^1 = 0 1^1 = 1 2^1 = 2 3^1 = 3 4^1 = 4 5^1 = 5 6^1 = 6 7^1 = 7 8^1 = 8 9^1 = 9 1^3 + 5^3 + 3^3 = 153 3^3 + 7^3 + 0^3 = 370 3^3 + 7^3 + 1^3 = 371 4^3 + 0^3 + 7^3 = 407
111 , 11, 12,…. nhiều số khác nữa cũng có tổng %$!# nhỏ hơn 1000 mà anh nhỉ.
xin lỗi em ko xóa comment được =))
làm thế khó hiểu lắm , bạn cho chạy từ 100->1000
xong tìm a,b,c của số đó bằng cách mod hay div , rồi gán nó qua 1 biến a1,b1,c1 gì đấy, kiểm ra neeys i =tổng 3 cái đó thì dem :=dem+1;
biến đếm để đếm só lượng các số amstrong , write(i)