PDA

View Full Version : nho giai bai pascal sau voi



chungtin
17-10-2014, 20:17
Tìm số
Cho một số nguyên n( 1<=N<=105) viết chương trình tìm số m thoả mản (1<=m<=n) dãy số tự nhiên từ 1 đến m được chia làm hai đoạn có tổng các phần trong mỗi đoạn bằng nhau
- Các số m mỗi số cách nhau dấu trống
- VD
inp 50 Out 3 20 inp 200 Out 3 20 119

dongcambiz
10-01-2015, 14:04
Mình có ý tưởng xử lý như sau:
1. Tính tổng các phần tử S của dãy số.
2. Nếu tổng chẵn thì có thể chia được và ngược lại không chia được.
3. Nếu có thể chia được thì chia, khi đó chắc chắn rằng tổng mỗi dãy con sẽ = s/2;
4. Dùng vòng lặp không biết trước số lần lặp. Ví dụ
s1:=0; i:=0;
Repeat
inc(i);
s1:=s1+a[i];
until s1=s/2;

=>> Vị trí của cuối đoạn 1 là i.
5. Ý tưởng là thế, trong quá trình bạn thực hành có sai sót thì tự edit! heee
=====HY VỌNG GIÚP ÍCH ĐƯỢC CHO BẠN ====

pchongit
12-01-2015, 09:18
uses crt;
var
i,n,so:longint;
function td(x,y:longint):longint;
var t,q:longint;
begin
q:=0;
for t:=x to y do q:=q+t;
td:=q;
end;
{====================================}
begin
Write(' Nhap n=');Readln(n);

for so:=1 to n do
for i:=2 to so do
if td(1,i)=td(i+1,so) then
writeln(so,' ',i);
Readln;
end.

ksc10
12-01-2015, 18:25
Sn = 2Sm
<=> Sn / 2 = Sm
<=> n(n+1) / 4 = m(m+1) / 2
<=> n(n+1) = 2m(m+1)
<=> Sn = n(n+1)/2 = m^2 + m
Nếu ta viết được Sn dưới dạng m^2 + m, m là số nguyên dương thì thu đc 1 đáp số; hay nói cách khác, nếu 1 + 4Sn là số chính phương thì thu đc 1 đáp số (do nghiệm còn lại âm).


http://ideone.com/DMHhwC