回 帖 发 新 帖 刷新版面

主题:请大家帮忙

输入一个由10个整数组成的序列,其中序列中任意连续三个整数都互不相同,求该序列中所有递增或递减子序列的个数。
  例如:
  输入:1 10 8 5 9 3 2 6 7 4
  输出:6
  对应的递增或递减子序列为:
  1 10 
  10 8 5 
  5 9
  9 3 2
  2 6 7
  7 4

回复列表 (共1个回复)

沙发

var i:integer;
    a:array[1..10] of integer;  // 输入的10个数
    b:array[1..2] of integer;   //b[1]---递增序列的个数,b[2]--为递减
    big:boolean;
    
begin
   read(a[1],a[2]);
   if a[1]>a[2] then
   begin
      big:=false;
      inc(b[2]);
   end
   else
   begin
      big:=true;
      inc(b[1]);
   end;
      
   for i:=3 to 10 do
   begin
      read(a[i]);
      if ((a[i]>a[i-1]) and (big=false)) then
         inc(b[1]);
      if ((a[i]<a[i-1]) and (big=true)) then
         inc(b[2]);
   end;
   writeln(b[1]+b[2]);    //输出总个数
   readln;
end.

我来回复

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