C++判断连胜(2)

分数统计

题目描述: 有 n 个球队1≤n≤100 ,编号为1,2,…,n,共进行 n 场比赛。每场比赛有一个胜队。 计分方法如下: 是连胜中的第一次胜利,则本次胜利得 1 分。 是连胜中的第二次胜利,则本次胜利得 2 分。 是连胜中的第三次胜利,则本次胜利得 3 分。 连胜超过三次以上的胜场,每场得 3 分。 例如 n=12 ,比赛的胜队为 1 2 1 1 3 2 1 1 1 1 4 2,计分如下:

队1 1+1+2+1+2+3+3=13 分

队2 1+1+1=3 分

队3 1 分

队4 1 分 其余队为 0 分。

输入 读入 n,x1两个整数,n 为球队数,x1 为第一次胜队号 第 xi场比赛(i≥2)胜队的编号由以下公式确定: xi = ( ( xi-1 * 3703 + 1047 ) mod n)+1 输出 一个整数,即得分最多队的分数。

输入复制

10 5

输出复制

3

#include <iostream>
using namespace std;
int main()
{
	int cnt2[200];
	int a[200];
	int x[200];
	int n;
	cin>>n>>x[0];
	int pr=0;
	int max=-1;
	int maxi=-1;
	int cnt=1;
	for(int i=0;i<n;i++)
	{
		cnt2[i]=0;
	}
	for(int i=0;i<n;i++)
	{
		x[i+1]=(x[i]*3703+1407)%n+1;
		a[i]=x[i];
	}	
	for(int i=0;i<=n;i++)
	{
		if(a[i]==pr)
		{
			cnt++;
		}
		else
		{
			for(int j=cnt;j>=1;j--)
			{
				cnt2[pr]=cnt2[pr]+j;
			}
			cnt=1;
		}
		pr=a[i];
	}
	for(int i=0;i<n;i++)
	{
		if(max<cnt2[i])
		{
			max=cnt2[i];
			maxi=i;
		}
	}
	cout<<max;
	
	
	return 0;
}

温度统计员

题目描述: 炎热的夏日,KC 非常的不爽。他宁可忍受北极的寒冷,也不愿忍受厦门的夏天。 最近,他开始研究天气的变化。他希望用研究的结果预测未来的天气。 经历千辛万苦,他收集了连续 N(1≤N≤10000)天的最高气温数据。 现在,他想知道最高气温一直上升的最长连续天数(相等也计入递增)。 输入 第 1 行:一个整数 N 。 第 2 行:N 个空格隔开的整数,第 xi 个整数表示第 i 天的最高气温。(0≤ai≤109)。 输出 一个整数,表示最高气温一直上升的最长连续天数。

输入复制

10

1 2 3 2 4 5 6 8 5 9

输出复制

5

#include<iostream>
using namespace std;
int main()
{
	int n;
	cin>>n;
	int cnt=0;
	int max=-1;
	int pr=999;
	for(int i=0;i<n;i++)
	{
		int s;
		cin>>s;
		if(s>=pr)
		{
			cnt++;
		}
		else
		{
			cnt=1;
		}
		if(cnt>max)
		{
			max=cnt;
		}
		pr=s;
	}
	cout<<max;
	
	
	return 0;
}

连续最长的偶数

题目描述: 从键盘读入 n 个整数,请问这 n 个整数中,连续的偶数最多有多少个? 输入 第 1 行输入一个整数 n (n≤100); 第 2 行读入 n 个整数,数字之间用空格隔开; 输出 输出一个整数,代表连续偶数的最长序列有多长。

输入复制

10

1 2 8 47 2 3374 944 992 198 100

输出复制

6

#include<iostream>
using namespace std;
int main()
{
	int n;
	cin>>n;
	int cnt=0;
	int max=-1;
	int pr=999;
	for(int i=0;i<n;i++)
	{
		int s;
		cin>>s;
		if(s%2==0&&pr%2==0)
		{
			cnt++;
		}
		else if(s%2==0&&pr%2==1)
		{
			cnt=1;
		}
		else
		{
			cnt=0;
		}
		if(cnt>max)
		{
			max=cnt;
		}
		pr=s;
	}
	cout<<max;
	
	
	return 0;
}

连胜统计 题目描述 在篮球比赛中,连胜是一件让球迷非常兴奋的事情。现给出n场比赛的获胜队伍编号,请输出每个球队连胜的场数, 要求至少连胜2场才能列入统计范围。 比如,输入获得胜利的球队编号为:9 9 1 2 2 2 9 9 3 3 3 2,那么输出结果如下

9 2

2 3

9 2

3 3

输出的含义是: 9 号球队连胜 2 场、 2 号球队连胜 3 场、 9 号球队连胜 2 场、 3 号球队连胜 3 场。 输入 第 1 行有一个整数 n ,代表比赛的场数。( 5≤n≤100 ) 第 2 行有 n 个整数,分别代表了每场比赛获得胜利的球队的编号。(球 队编号在 1,109 范围内) 输出 输出若干行,每行 2 个整数,按照读入的顺序输出获得连胜的球队的编 号以及连胜的场次。

输出复制

12

9 9 1 2 2 2 9 9 3 3 3 2

输出复制

9 2

2 3

9 2

3 3

#include <iostream>
using namespace std;
int main()
{
	int a[100];
	int n;
	cin>>n;
	int pr=0;
	int max=-1;
	int maxi=-1;
	int cnt=1;
	for(int i=0;i<n;i++)
	{
		cin>>a[i];
	}
	for(int i=0;i<=n;i++)
	{
		if(a[i]==pr)
		{
			cnt++;
		}
		else
		{
			if(cnt>1)
			{
				cout<<pr<<" "<<cnt<<endl;
			}
			cnt=1;
		}
		if(cnt>max)
		{
			max=cnt;
			maxi=a[i];
		}
		pr=a[i];
	}
	
	
	return 0;
}

连续非素数的最大长度

题目描述: 给出一个正整数 n ( 2≤n≤1000000 ),例如 n=30 ,在1,2,3,…30 中,连续的非素数有:

4长度为 1

6 长度为 1

8 9 10 长度为 3

12 长度为 1

14 15 16 长度为 3

18 长度为 1

20 21 22 长度为 3

24 25 26 27 28 长度为5

30 长度为 1

其中,最大长度为 5 ,即有连续的5 个非素数。 输入 一个整数 n 。 输出 一个整数,即连续非素数最大长度。

输入复制

12

输出复制

3

#include <iostream>
using namespace std;
bool a[1000100];
int main()
{
	int n;
	cin>>n;
	int max=-1;
	int maxi=-1;
	int cnt=1;
	int pr=-1;
	a[0]=1;
	a[1]=1;
	a[2]=0;
	a[3]=0;
	a[4]=1;
	a[5]=0;
	a[6]=1;
	a[7]=0;
	a[8]=1;
	a[9]=1;
	a[10]=1;
	for(int i=2;i<33;i++)
	{
		if(a[i]==0)
		{
			int j=2;
			while(i*j<=1000)
			{
				a[i*j]=1;
				j++;
			}
		}
	}
	for(int i=34;i<1000;i++)
	{
		if(a[i]==0)
		{
			int j=2;
			while(i*j<=1000000)
			{
				a[i*j]=1;
				j++;
			}
		}
	}
	for(int i=2;i<=n;i++)
	{
		if(pr==a[i]&&a[i]==1)
		{
			cnt++;
		}
		else if(a[i]==0)
		{
			cnt=0;
		}
		else
		{
			cnt=1;
		}
		if(cnt>max)
		{
			max=cnt;
		}
		pr=a[i];
	}
	cout<<max;
	
	
	
	return 0;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值