主题:大家帮帮我,我给高分,而且感激不尽!(等差数列问题)
ltf
[专家分:0] 发布于 2005-07-27 15:59:00
[em18]
给定n(1<=n<=100)个数,从中找出尽可能多的数使得他们能够组成一个等差数列.求最长的等差数列的长度.
输入:每组数据第一行是一个整数n,接下来一行包括了n个数,每个数的绝对值不超过10000000.
输出:对于每个输入数据,输出你所找出的最长等差数列的长度.
例:输入
7
3
8
4
5
6
2
2
输出
5
大家谁做出,我感激不尽!
回复列表 (共13个回复)
沙发
mlj [专家分:310] 发布于 2005-07-27 17:02:00
var
i,j,k,s,n,max,m,c:longint;
a:array[1..100] of longint;
b:array[1..100] of integer;
procedure cz;
var
k:lonteger;
begin
for k:=j to n do
if a[k]-a[s]=c then begin
inc(m);
s:=k;
end;
end;
begin
readln(n);
for i:=1 to n do readln(a[i]);
for i:=1 to n-1 do
for j:=i+1 to n do
if a[i]>a[j] then begin
k:=a[i]; a[i]:=a[j]; a[j]:=k;
end;
for i:=1 ot n-1 do
for j:=i+1 to n do begin
m:=2;
c:=a[j]-a[i];
s:=j;
cz;
if m > max then max:=m;
end;
writeln(max);
end.
板凳
mlj [专家分:310] 发布于 2005-07-27 17:03:00
随便编编,有点错误请别怪我.
3 楼
xpycc [专家分:410] 发布于 2005-07-27 17:40:00
形如“2 2 2”、“3 3 3 3 3”……这样的差为0的数列算不算等差数列?
4 楼
jzyray [专家分:20610] 发布于 2005-07-27 18:55:00
To 3:
这是常数列。不是等差数列,应该排除。
5 楼
xpycc [专家分:410] 发布于 2005-07-30 20:01:00
哦~~~~~~~~~~
小弟数学功底有限,多谢高手指点~~~~~~~~~
6 楼
MagicG [专家分:650] 发布于 2005-08-03 21:25:00
拜托```那是高中数学``````````
7 楼
口口and枕头 [专家分:1550] 发布于 2005-08-04 09:35:00
inc是什么函数~?
我记得老师说公差可以为0公比不能为0所以常数列也是等差数列.
8 楼
MagicG [专家分:650] 发布于 2005-08-04 10:13:00
对,常数列是属于等差数列的
inc函数就是加1啦```
var a:integer;
begin
a:=0;
inc(a);
if a=1 then 发贴;
end.
9 楼
口口and枕头 [专家分:1550] 发布于 2005-08-04 11:26:00
恩恩`~~好无聊的函数~~~
10 楼
MagicG [专家分:650] 发布于 2005-08-04 17:25:00
呵呵~大量使用可以省去N万字哦```
(当然,前提是有人会大量使用它``汗....:)
我来回复