⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 longest.cpp

📁 给出一个由非0整数组成的序列a1,a2,…,an, 设计递归算法求其中由同号整数组成的最长连续段(称为最长同号连续段)的长度。
💻 CPP
字号:
//最长同号连续段
#include "iostream.h"
#include "stdio.h"
#define N 1001
int ls(int start, int n, int a[]); 
int main()
{ int k,n,i,j,len,a[N];
  cin>>k;
  for (i=1; i<=k; i++)
  {
	  cin>>n; 
	  for (j=1;j<=n;j++) cin>>a[j];
	  len=ls(1,n,a);
	  cout<<len<<endl;
  }
  return 1;
}
int ls(int start, int n, int a[])
{
	int length=0,sign,m;
    if (start<=n) 
	{   if (a[start]>0) sign=1; else sign=-1;
        start++; length++;
	    while(start<=n)
		{ 
		     if (a[start]*sign>0) {length++;start++;}
	         else 
			 { 
			    m=ls(start,n,a);
		        if (m>length) length=m;
                return length;
			 }
		}
	}
    return length;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -