关于连数
  • 板块P1420 最长连号
  • 楼主Udzuki
  • 当前回复3
  • 已保存回复3
  • 发布时间2022/10/11 12:01
  • 上次更新2023/10/27 07:54:55
查看原帖
关于连数
782429
Udzuki楼主2022/10/11 12:01

如果数列由大到小,那不就没有从小到大的数了吗,哪连号的个数不应该是0么。 以下代码AC了,但输入从大到小的数列,就会输出1;```c #include<stdio.h> int main() { long int n,a[10000],i,max=0,s=1; scanf("%ld",&n); for(i=1;i<=n;i++) { scanf("%ld",&a[i]); } for(i=1;i<=n;i++) { if(a[i+1]-a[i]==1) s++; else s=1; if(s>max) max=s; } printf("%ld",max); return 0; }

如果最长连号的数的个数是1,也就是没有连续的连号,实际上连号个数为0。修改后,输入从大倒小或者常数列,会输出0,但是第4点会WA。```c
#include<stdio.h>
int main()
{
	long int n,a[10000],i,max=0,s=1;
	scanf("%ld",&n);
	for(i=1;i<=n;i++)
	{
		scanf("%ld",&a[i]);
	}
	for(i=1;i<=n;i++)
	{
		if(a[i+1]-a[i]==1)
		s++;
		else
		s=1;
		if(s>max)
		max=s;
	}
	if(max==1)
	max=0;
	printf("%ld",max);
	return 0;
}

我的理解不是很好,如果犯了什么可笑的错误还请原谅我吧。

2022/10/11 12:01
加载中...