Tin học Phân tích số

bùi thị xuân mai

Học sinh
Thành viên
28 Tháng bảy 2019
42
13
31
19
Quảng Nam
thcs võ thị sáu
[TẶNG BẠN] TRỌN BỘ Bí kíp học tốt 08 môn
Chắc suất Đại học top - Giữ chỗ ngay!!

ĐĂNG BÀI NGAY để cùng trao đổi với các thành viên siêu nhiệt tình & dễ thương trên diễn đàn.

Cho một số nguyên dương n (n=<590) .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ớn nhất
DỮ LIỆU VÀO : Từ file văn bản PHANTICH.INP gồm 1 số nguyên dương n
DỮ LIỆU RA : Đưa vào file văn bản PHANTICH.OUT có cấu trúc như sau:
-dòng đầu là một số nguyên chỉ số lượng các số tự nhiên sau khi đã phân tích
- các dòng tiếp theo là biểu thức tính tổng của các số tự nhiên , mỗi dòng 10 số hạng (nếu biểu thức có nhiều hơn 10 số hạng)
-dòng cuối cùng là tích của các số tự nhiên trong biểu thức trên.
ví dụ
PHANTICH.INPPHANTICH.OUT
123
3+4+5
60
[TBODY] [/TBODY]
 

trungtech1908

Học sinh
Thành viên
12 Tháng mười hai 2019
44
13
21
20
Đồng Nai
THPT sông ray
Cho một số nguyên dương n (n=<590) .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ớn nhất
DỮ LIỆU VÀO : Từ file văn bản PHANTICH.INP gồm 1 số nguyên dương n
DỮ LIỆU RA : Đưa vào file văn bản PHANTICH.OUT có cấu trúc như sau:
-dòng đầu là một số nguyên chỉ số lượng các số tự nhiên sau khi đã phân tích
- các dòng tiếp theo là biểu thức tính tổng của các số tự nhiên , mỗi dòng 10 số hạng (nếu biểu thức có nhiều hơn 10 số hạng)
-dòng cuối cùng là tích của các số tự nhiên trong biểu thức trên.
ví dụ
PHANTICH.INPPHANTICH.OUT
123
3+4+5
60
[TBODY] [/TBODY]
bạn ơi, hình như là test của bạn bị sai. Tại sao ko phải là 12=3+2+2+3+2 và 3*2*2*3*2=72, và output phải là 5. Bạn coi lại dùm mình nha
 

trungtech1908

Học sinh
Thành viên
12 Tháng mười hai 2019
44
13
21
20
Đồng Nai
THPT sông ray
bạn ơi, hình như là test của bạn bị sai. Tại sao ko phải là 12=3+2+2+3+2 và 3*2*2*3*2=72, và output phải là 5. Bạn coi lại dùm mình nha
Nếu test của mình là đúng thì bạn có thể làm như sau
Thứ nhất, khi tách số, ta càng tách dc nhiều số, tích càng lớn. VD: 20=10+10 và 10*10=100. nhưng 20=2+2+2+...+2 và 2^10=1024
Vậy ta có thể tách n thành dạng như sau: n=a*2+b*3 (2 và 3 là số nhỏ nhất, ko thể tách dc nữa).
Như vậy, bạn có thể lồng hai vòng for, xét điều kiện. Nếu chưa bt cách làm thì mình sẽ chỉ thêm
 
Top Bottom