P5724 【深基4.习5】求极差 / 最大跨度值 / 最大值和最小值的差

题目描述

给出 n 和 n 个整数 ai​,求这 n 个整数中的极差是什么。极差的意思是一组数中的最大值减去最小值的差。

输入格式

第一行输入一个正整数 n,表示整数个数。

第二行输入 n 个整数 a1​,a2​…an​,以空格隔开。

输出格式

输出一个整数,表示这 n 个整数的极差。

输入输出样例

输入 #1复制

6
4 1 5 1 4 1

输出 #1复制

4

说明/提示

数据保证,1≤n≤100,0≤ai​≤1000。

实现代码:

#include<bits/stdc++.h>
using namespace std;
long long a[100000];
int main(){
	int n;
	cin>>n;
	for(int i=1;i<=n;i++){
		cin>>a[i];
	}
	sort(a+1,a+1+n);
	cout<<a[n]-a[1];
	return 0;
}

P1420 最长连号

题目描述

输入长度为 n 的一个正整数序列,要求输出序列中最长连号的长度。

连号指在序列中,从小到大的连续自然数。

输入格式

第一行,一个整数 n。

第二行,n 个整数 ai​,之间用空格隔开。

输出格式

一个数,最长连号的长度。

输入输出样例

输入 #1复制

10
1 5 6 2 3 4 5 6 8 9

输出 #1复制

5

说明/提示

数据规模与约定

对于 100% 的数据,保证 1≤n≤104,1≤ai​≤109。

 实现代码:

#include<bits/stdc++.h>
using namespace std;
long long a[100000];
int main(){
	int n,sum=0,cnt=1;
	cin>>n;
	for(int i=1;i<=n;i++){
		cin>>a[i];
		if(a[i]-a[i-1]!=1){
			cnt=max(cnt,sum);
			sum=0;
		}
		sum++;
	}
	cout<<max(cnt,sum);
	return 0;
}

P1075 [NOIP 2012 普及组] 质因数分解

题目描述

已知正整数 n 是两个不同的质数的乘积,试求出两者中较大的那个质数。

输入格式

输入一个正整数 n。

输出格式

输出一个正整数 p,即较大的那个质数。

输入输出样例

输入 #1复制

21

输出 #1复制

7

说明/提示

1≤n≤2×109

NOIP 2012 普及组 第一题

 实现代码:

#include <bits/stdc++.h>
using namespace std;
const int N=1010;
struct node{
	int id;
	int c,m;
	int sum,cnt;
};
node a[N];
int n;

int fun(int x){
	for(int i=2;i*i<=x;i++){
		if(x%i==0){
			return 0;
		}
	}
	return 1;
}

int main(){
	cin>>n;
	for(int i=2;i<=n;i++){
		if(fun(i)==1&&n%i==0&&fun(n/i)==1){
			cout<<n/i;
			return 0;
		}
	}
	return 0;
}

P5725 【深基4.习8】求三角形

题目描述

模仿例题,打印出不同方向的正方形,然后打印三角形矩阵。中间有个空行。

输入格式

输入矩阵的规模,不超过 9。

输出格式

输出矩形和三角形。

输入输出样例

输入 #1复制

4

输出 #1复制

01020304
05060708
09101112
13141516

      01
    0203
  040506
07080910

 实现代码:

#include<bits/stdc++.h>
using namespace std;
long long a[100000];

int main(){
	int n;
	cin>>n;
	int cnt=0;
	for(int i=1;i<=n;i++){
		for(int j=1;j<=n;j++){
			cnt++;
			if(cnt<=9){
				cout<<"0"<<cnt;
			}
			else cout<<cnt;
		}
		cout<<endl;
	}
	cout<<endl;
	int sum=0;
	for(int i=1;i<=n;i++){
		for(int j=2*n-1;j>=2*i;j--){
			cout<<" ";
		}
		for(int j=1;j<=i;j++){
			sum++;
			if(sum<=9){
				cout<<"0"<<sum;
			}
			else cout<<sum;
		}
		cout<<endl;
	}
	return 0;
}

P5726 【深基4.习9】打分

题目描述

现在有 n(n≤1000) 位评委给选手打分,分值从 0 到 10。需要去掉一个最高分,去掉一个最低分(如果有多个最高或者最低分,也只需要去掉一个),剩下的评分的平均数就是这位选手的得分。现在输入评委人数和他们的打分,请输出选手的最后得分,精确到 2 位小数。

输入格式

第一行输入一个正整数 n,表示有 n 个评委。

第二行输入 n 个整数,第 i 个整数表示第 i 个评委打出的分值。

输出格式

输出一行一个两位小数,表示选手的最后得分。

输入输出样例

输入 #1复制

5
9 5 6 8 9

输出 #1复制

7.67

说明/提示

数据保证,3≤n≤1000,每个评委打出的分值为 0 到 10(含 0 与 10)之间的整数。

 实现代码:

#include<bits/stdc++.h>
using namespace std;
long long a[100000];

int main(){
	int n;
	cin>>n;
	double  sum=0;
	int t,minn=11,maxx=0;
	for(int i=1;i<=n;i++){
		cin>>t;
		maxx=max(maxx,t);
		minn=min(minn,t);
		sum+=t;
	}
	printf("%.2lf",(sum-minn-maxx)/(n-2));
	return 0;
}

P4956 [COCI 2017/2018 #6] Davor

题目描述

成功征服南极后,Davor 正在为新的挑战做准备。接下来是前往西伯利亚、格陵兰和挪威的北极探险。他将于 2018 年 12 月 31 日开始旅行,并需要在此之前筹集 N 库纳(克罗地亚货币)。为此,他决定每周一存入 X(X≤100) 库纳到他的旅行基金中,每周二存入 X+K 库纳,每周三存入 X+2×K 库纳,依此类推,直到周日,他将存入 X+6×K 库纳。这样,他将在 52 周内筹集资金,从 2018 年 1 月 1 日(星期一)开始,直到 2018 年 12 月 30 日(星期日)为止。

如果我们知道金额 N,输出值 X 和 K,以便可以在给定的时间范围内收集到准确的金额。解决方案总是存在的,如果有多个,输出 X 最大且 K 最小的那个。

输入格式

输入的第一行包含整数 N(1456≤N≤145600),这是任务中的数字。

输出格式

输出的第一行必须包含 X 的值 (0<X≤100),第二行包含 K 的值 (K>0)。

显示翻译

题意翻译

输入输出样例

输入 #1复制

1456

输出 #1复制

1
1

输入 #2复制

6188

输出 #2复制

14
1

输入 #3复制

40404

输出 #3复制

99
4

说明/提示

题面翻译由 ChatGPT-4o 提供。

 实现代码:

#include<bits/stdc++.h>
using namespace std;
long long a[100000];

int main(){
	int n;
	cin>>n;
	n=n/364;
	for(int i=1;i<=n/3;i++){
		if(n-3*i<=100){
			cout<<n-3*i<<endl;
			cout<<i;
			return 0;
		}
	}
	return 0;
}

P1089 [NOIP 2004 提高组] 津津的储蓄计划

津津的零花钱一直都是自己管理。每个月的月初妈妈给津津 300 元钱,津津会预算这个月的花销,并且总能做到实际花销和预算的相同。

为了让津津学习如何储蓄,妈妈提出,津津可以随时把整百的钱存在她那里,到了年末她会加上 20% 还给津津。因此津津制定了一个储蓄计划:每个月的月初,在得到妈妈给的零花钱后,如果她预计到这个月的月末手中还会有多于 100 元或恰好 100 元,她就会把整百的钱存在妈妈那里,剩余的钱留在自己手中。

例如 11月初津津手中还有 83 元,妈妈给了津津 300 元。津津预计11月的花销是 180 元,那么她就会在妈妈那里存 200 元,自己留下 183 元。到了 11 月月末,津津手中会剩下 3 元钱。

津津发现这个储蓄计划的主要风险是,存在妈妈那里的钱在年末之前不能取出。有可能在某个月的月初,津津手中的钱加上这个月妈妈给的钱,不够这个月的原定预算。如果出现这种情况,津津将不得不在这个月省吃俭用,压缩预算。

现在请你根据 2004 年 1 月到 12 月每个月津津的预算,判断会不会出现这种情况。如果不会,计算到 2004 年年末,妈妈将津津平常存的钱加上 20% 还给津津之后,津津手中会有多少钱。

输入格式

12 行数据,每行包含一个小于 350 的非负整数,分别表示 1 月到 12 月津津的预算。

输出格式

一个整数。如果储蓄计划实施过程中出现某个月钱不够用的情况,输出 −X,X 表示出现这种情况的第一个月;否则输出到 2004 年年末津津手中会有多少钱。

注意,洛谷不需要进行文件输入输出,而是标准输入输出。

输入输出样例

输入 #1复制

290
230
280
200
300
170
340
50 
90 
80 
200
60 

输出 #1复制

-7 

输入 #2复制

290 
230 
280 
200 
300 
170 
330 
50 
90 
80 
200 
60 

输出 #2复制

1580

 实现代码:

#include<bits/stdc++.h>
using namespace std;
long long a[100000];

int main(){
	int n;
	int sum=0;
	int cnt=0;
	for(int i=1;i<=12;i++){
		sum+=300;
		cin>>n;
		sum-=n;
		if(sum>=100){
			int x=sum/100;
			cnt+=x*100;
			sum=sum-x*100;
		}
		else if(sum<0){
			cout<<"-"<<i;
			return 0;
		}
	}
	cout<<cnt*(1.2)+sum;
	return 0;
}

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐