Đến nội dung

starr

starr

Đăng ký: 04-05-2011
Offline Đăng nhập: 05-05-2011 - 12:50
-----

#260023 Tổng các chữ số trong dãy từ 1 tới n

Gửi bởi starr trong 04-05-2011 - 17:54

Cách của perfectstrong đúng rồi đấy nhưng ở đây n không phải có 100 chữ số mà là 10^100 (số chữ số lớn hơn nhiều). Vấn đề nêu ra tiếp cận ở góc độ TIN HỌC (không phải TOÁN HỌC nhé) thì cách giải quyết sẽ là:

- Độ phức tạp về không gian: Khả năng lưu trữ là hữu hạn (không có khái niệm :D ở trong Toán học)
- Độ phức tạp về thời gian: Khả năng tính toán :neq (thời gian thực hiện để cho ra kết quả) dựa trên số phép toán cầnthuwch hiện.

Quya trở lại với bài toán của bạn. Trong trường hợp kiểu chuỗi bị tràn (số có số chữ số vượt 255) thì dùng dách sách liên kết đơn (ứng dụng kiểu con trỏ) khi đó chiều dài số là vô biên theo nghĩa còn đủ bộ nhớ để tạo ra các biến động.

Tóm lại, cũng là một vấn đề nhưng tiếp cận theo góc độ Toán học và Tin học thì cách giải quyết có thể khác nhau (nhưng vẫn giải quyết được cùng yêu cầu). :neq


Bài này có 2 vấn đề:
- Số n cho giới hạn là <= 10^100 thì tối đa nó có 100 chữ số là đúng rồi vì số 10^100 có 100 chữ số thôi.
- Nếu làm theo kiểu perfectstrong thì liệu máy tính có chạy nỗi ko, với vòng lặp 10^100 lần và với tốc độ của máy tính hiện khoảng >3GHz không biết đến khi nào nó mới chạy xong vòng lặp đó=> Cách này không khả thi cho lắm
Mình nghĩ nếu bài này tìm ra quy luật tính hay công thức tính thì nó sẽ giảm độ phức tạp của thuật toán rất nhiều.
Ai tìm đc quy luật hay công thức thì share lên để mọi người cùng tham khảo