| Bài này dễ nè. Đưa lên cho pà con xem. | |
|
|
Tác giả | Thông điệp |
---|
hoangtin14 Mèo con
Tổng số bài gửi : 96 Join date : 08/02/2010 Age : 29 Đến từ : Bình Định
| Tiêu đề: Bài này dễ nè. Đưa lên cho pà con xem. Sat 13 Mar 2010, 17:50 | |
| Cho một số tự nhiên N. Tìm cách phân tích số N thành tổng của các số tự nhiên khác nhau sao cho tích của chúng là lớn nhất. VD: N=10 phân tích thành 2 3 5 | |
|
| |
littlelee Admin
Tổng số bài gửi : 415 Join date : 20/12/2009 Age : 29 Đến từ : Nghĩa địa
| Tiêu đề: Re: Bài này dễ nè. Đưa lên cho pà con xem. Sun 14 Mar 2010, 21:36 | |
| Nếu n<=4 thì để nguyên. Nếu n>=5 thì làm như sau: gán i:=2;, vào vòng lặp điều kiện là n>0, gán n:=n-i; chọn số i; i:=i+1; rồi tiếp tục quay lên. Ra khỏi vòng lặp, n:=abs(n); nếu n=0 thì ko làm gì hết, nếu n<>0 thì loại số n ra khỏi các số đã chọn. | |
|
| |
hoangtin14 Mèo con
Tổng số bài gửi : 96 Join date : 08/02/2010 Age : 29 Đến từ : Bình Định
| Tiêu đề: Re: Bài này dễ nè. Đưa lên cho pà con xem. Sun 14 Mar 2010, 21:40 | |
| Cách này tương tự cách mình làm. | |
|
| |
littlelee Admin
Tổng số bài gửi : 415 Join date : 20/12/2009 Age : 29 Đến từ : Nghĩa địa
| Tiêu đề: Re: Bài này dễ nè. Đưa lên cho pà con xem. Wed 17 Mar 2010, 14:59 | |
| Thì cách đơn giản nhất mà. | |
|
| |
administrators Gà nhỏ
Tổng số bài gửi : 29 Join date : 15/03/2010
| Tiêu đề: Re: Bài này dễ nè. Đưa lên cho pà con xem. Wed 17 Mar 2010, 16:33 | |
| Cống hiến chút đỉnh nà: Bài này làm như thế này: Nếu n>3 thì + đem n - 2 + và xuất 2 ra + làm lại từ đầu Ngược lại + xuất n. + kết thúc Như vậy với n = 10 ta có cách phân tích như sau 10= 2+ 2+2 + 2 +2 +0 (số 0 cuối cùng ta bỏ đi, nếu để lại chết chắc ) Tích là 32. lớn nhất. Tuy nhiên như bạn thấy đấy 2+2 = 4, và 2*2=4. Như vậy ta có thể phân tích thành những con số 4 cũng được. Nhưng khi gặp con số 5 thì lại phân tích thành 3+2 (phiền phức). Thôi thì cứ 2+2+.... cho xong vậy. | |
|
| |
littlelee Admin
Tổng số bài gửi : 415 Join date : 20/12/2009 Age : 29 Đến từ : Nghĩa địa
| Tiêu đề: Re: Bài này dễ nè. Đưa lên cho pà con xem. Wed 17 Mar 2010, 17:17 | |
| | |
|
| |
hoangtin14 Mèo con
Tổng số bài gửi : 96 Join date : 08/02/2010 Age : 29 Đến từ : Bình Định
| Tiêu đề: Re: Bài này dễ nè. Đưa lên cho pà con xem. Wed 17 Mar 2010, 21:04 | |
| administrators với littlelee ơi. Đọc cho kĩ đề nha. Phân tích thành các số tự nhiên khác nhau mà. Sao phân tích thành 2 hết dc? Mình ko hỉu cho lắm. Có j sai thì cho mình bt nha. | |
|
| |
administrators Gà nhỏ
Tổng số bài gửi : 29 Join date : 15/03/2010
| Tiêu đề: Re: Bài này dễ nè. Đưa lên cho pà con xem. Wed 17 Mar 2010, 21:07 | |
| Thật hỗ thẹn vì đọc không kỹ đề. Sorry | |
|
| |
administrators Gà nhỏ
Tổng số bài gửi : 29 Join date : 15/03/2010
| Tiêu đề: Re: Bài này dễ nè. Đưa lên cho pà con xem. Wed 17 Mar 2010, 21:22 | |
| Vậy thì viết lại
i:=1; while n<>0 do begin inc(i); if n> i*2 then begin write(i); n:=n-i; end else begin write(n); n:=0; end; end; | |
|
| |
hoangtin14 Mèo con
Tổng số bài gửi : 96 Join date : 08/02/2010 Age : 29 Đến từ : Bình Định
| Tiêu đề: Re: Bài này dễ nè. Đưa lên cho pà con xem. Wed 17 Mar 2010, 21:26 | |
| không cần phải như thế đâu. bài toán này còn có tên gọi là bài toán rải đậu, các số dc phân tích ra là một dãy số liên tiếp từ 2 đến một số a sao cho tổng của chúng là số đầu tiên lớn hơn N. rồi trừ trong dãy đó ra một số để có tổng bằng N thì dãy sẽ có tích lớn nhất. Ví dụ: 10 phân tích ra 2,3,4,5 Trừ 4 ra là bằng 10 sẽ có tích lớn nhất 2*3*5=30 | |
|
| |
hoangtin14 Mèo con
Tổng số bài gửi : 96 Join date : 08/02/2010 Age : 29 Đến từ : Bình Định
| Tiêu đề: Re: Bài này dễ nè. Đưa lên cho pà con xem. Wed 17 Mar 2010, 21:27 | |
| Đó là ý kiến riêng mình. Ko bt đúng ko. Nếu sai thì xin mọi người sửa chữa dùm | |
|
| |
administrators Gà nhỏ
Tổng số bài gửi : 29 Join date : 15/03/2010
| Tiêu đề: Re: Bài này dễ nè. Đưa lên cho pà con xem. Wed 17 Mar 2010, 21:32 | |
| - hoangtin14 đã viết:
- không cần phải như thế đâu. bài toán này còn có tên gọi là bài toán rải đậu, các số dc phân tích ra là một dãy số liên tiếp từ 2 đến một số a sao cho tổng của chúng là số đầu tiên lớn hơn N. rồi trừ trong dãy đó ra một số để có tổng bằng N thì dãy sẽ có tích lớn nhất.
Ví dụ: 10 phân tích ra 2,3,4,5 Trừ 4 ra là bằng 10 sẽ có tích lớn nhất 2*3*5=30 Bạn nói đúng rồi. Và hoàn toàn trùng khớp với mấy dòng lệnh mình viết ở trên. | |
|
| |
Sponsored content
| Tiêu đề: Re: Bài này dễ nè. Đưa lên cho pà con xem. | |
| |
|
| |
| Bài này dễ nè. Đưa lên cho pà con xem. | |
|