回 帖 发 新 帖 刷新版面

主题:大家帮帮我,我给高分,而且感激不尽!(等差数列问题)

[em18]
   给定n(1<=n<=100)个数,从中找出尽可能多的数使得他们能够组成一个等差数列.求最长的等差数列的长度.

输入:每组数据第一行是一个整数n,接下来一行包括了n个数,每个数的绝对值不超过10000000.

输出:对于每个输入数据,输出你所找出的最长等差数列的长度.

例:输入
7
3
8
4
5
6
2
2

输出
5


大家谁做出,我感激不尽!

回复列表 (共13个回复)

沙发

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.

板凳

随便编编,有点错误请别怪我.

3 楼

形如“2 2 2”、“3 3 3 3 3”……这样的差为0的数列算不算等差数列?

4 楼

To 3:

这是常数列。不是等差数列,应该排除。

5 楼

哦~~~~~~~~~~

小弟数学功底有限,多谢高手指点~~~~~~~~~

6 楼

拜托```那是高中数学``````````

7 楼

inc是什么函数~?
我记得老师说公差可以为0公比不能为0所以常数列也是等差数列.

8 楼

对,常数列是属于等差数列的
inc函数就是加1啦```
var a:integer;
begin
     a:=0;
     inc(a);
     if a=1 then 发贴;
end.

9 楼

恩恩`~~好无聊的函数~~~

10 楼

呵呵~大量使用可以省去N万字哦```
(当然,前提是有人会大量使用它``汗....:)

我来回复

您尚未登录,请登录后再回复。点此登录或注册