If this is your first visit, be sure to
check out the FAQ by clicking the
link above. You may have to register
before you can post: click the register link above to proceed. To start viewing messages,
select the forum that you want to visit from the selection below.
Viết chương trình tìm tất cả các số nguyên có ba chữ số sao cho tổng tam thừa của ba chữ số hàng trăm, hàng chục, hàng đơn vị bằng số nguyên đó.
VD: 13 + 53 + 33 = 153
Viết chương trình tìm tất cả các số nguyên có ba chữ số sao cho tổng tam thừa của ba chữ số hàng trăm, hàng chục, hàng đơn vị bằng số nguyên đó.
VD: 13 + 53 + 33 = 153
Viết chương trình tìm tất cả các số nguyên có ba chữ số sao cho tổng tam thừa của ba chữ số hàng trăm, hàng chục, hàng đơn vị bằng số nguyên đó.
VD: 13 + 53 + 33 = 153
Các làm 2 lúa nhất là cho 3 vòng for chạy. Vòng hàng trăm chạy từ 1 - 9, 2 vòng kia chạy từ 0 - 9, vừa chạy vừa ráp vào công thức ở trên rồi so sánh với kết quả. Ví dụ 3 vòng for ở trên là i, j , k thì đem cái kết quả i*i*i + j*j*j + k*k*k so sánh với i*100 + j*10 + k. nếu bằng nhau thì in ra thôi.
Cái quét cạn này chắc chạy lâu nhất trong tất cả các thuật toán rồi!
Cái này tìm hết các số nguyên (ko giới hạn số chữ số) được mà. Gọi số chữ số của số nguyên đó là n thì tổng tam thừa của các chữ số có giá trị tối đa là n*9^3 trong khi giá trị của số nguyên n chữ số thì bèo nhât phải là 10^(n-1). Ta biết hàm mũ tăng nhanh hơn hàm lũy thừa và bằng phương pháp thế số và đoán lụi huyền thoại thì ta thấy khi các số cần tìm phải bé hơn 10^4.
Như vậy chỉ cần cho vòng lặp for chạy từ 1 đến 9999 rồi kiểm tra số đang chạy mà thỏa yêu cầu thì xuất ra thôi. Nhẹ nhàng êm ái, gà như admin làm còn ra =))
Comment