C/C++之(二)洛谷刷题基础

学习之路,长路漫漫,写学习笔记的过程就是把知识讲给自己听的过程。

Hello,最近一直没有更新,唉😔。说来话长,最近学业繁忙,生活琐碎。也在积极的参加一个大数据的比赛!(ง •_•)ง    评论区有没有大佬可以教教我大数据的相关内容,例如Hadoop  Spark等,最后,🙇‍阅读!

话不多说,直接shang题!

【P1001】A+B Problem


题目描述

输入两个整数 a, ba,b,输出它们的和(|a|,|b| \le {10}^9∣a∣,∣b∣≤109)。

注意

  1. Pascal 使用 integer 会爆掉哦!
  2. 有负数哦!
  3. C/C++ 的 main 函数必须是 int 类型,而且 C 最后要 return 0。这不仅对洛谷其他题目有效,而且也是 NOIP/CSP/NOI 比赛的要求!

好吧,同志们,我们就从这一题开始,向着大牛的路进发。

任何一个伟大的思想,都有一个微不足道的开始。

输入格式

两个以空格分开的整数。

输出格式

一个整数。

输入输出样例

输入 #1

20 30

输出 #1

50
#include<bits/stdc++.h>
using namespace std;
int main(){
	int n,m,sum=0;
	cin >> n >> m;
	sum=n+m;
	cout << sum;
}

 

【P5704 】【深基2.例6】字母转换


 

题目描述

输入一个小写字母,输出其对应的大写字母。例如输入 q[回车] 时,会输出 Q。

输入格式

输出格式

输入输出样例

输入 

q

输出 

Q
#include<bits/stdc++.h>
using namespace std;
int main(){
	char a;
	cin >> a;
	if(a>='a'&&a<='z'){
		a=a-32;
		cout << a;
	}
}

 

【P5705 】【深基2.例7】数字反转

 

题目描述

输入一个不小于 100100 且小于 10001000,同时包括小数点后一位的一个浮点数,例如 123.4123.4 ,要求把这个数字翻转过来,变成 4.3214.321 并输出。

输入格式

一行一个浮点数

输出格式

一行一个浮点数

输入输出样例

输入 

123.4

输出

4.321
#include<bits/stdc++.h>
using namespace std;
int main(){
	string a;
	int i;
	cin >> a;
	int length=a.size();
	for(i=length-1;i>=0;i--){
		cout << a[i];
	}
}

 


【P5711 】【深基3.例3】闰年判断

 

题目描述

输入一个年份,判断这一年是否是闰年,如果是输出 11,否则输出 00。

输入格式

输入一个正整数 nn,表示年份。

输出格式

输出一行。如果输入的年份是闰年则输出 11,否则输出 00。

输入输出样例

输入 

1926

输出 

0

输入 

1900

输出 

0

输入 

2000

输出 

1

输入 

1996

输出 

1

说明/提示

数据保证,1582 \leq n \leq 20201582≤n≤2020 且年份为自然数。

#include<bits/stdc++.h>
using namespace std;
int main(){
	int n;
	cin >> n;
	if((n%4==0&&n%100!=0)||n%400==0){
		cout << "1" << endl;
	}
	else{
		cout << "0" << endl;
	}
} 

 


【P5715 】【深基3.例8】三位数排序

 

题目描述

给出三个整数 a,b,c(0\le a,b,c \le 100)a,b,c(0≤a,b,c≤100),要求把这三位整数从小到大排序。

输入格式

输入三个整数 a,b,ca,b,c,以空格隔开。

输出格式

输出一行,三个整数,表示从小到大排序后的结果。

输入输出样例

输入 

1 14 5

输出 

1 5 14

输入 

2 2 2

输出 

2 2 2
#include<bits/stdc++.h>
using namespace std;
int main(){
	int a[3],i;
	for(i=0;i<3;i++){
		cin >> a[i]; 
	}
	sort(a,a+3);
	for(i=0;i<3;i++){
		cout << a[i] << " ";
	}
}

 


【P4414】 [COCI2006-2007#2] ABC

 

题目描述

You will be given three integers A, B and C. The numbers will not be given in that exact order, but we do know that A is less than B and B less than C. In order to make for a more pleasant viewing, we want to rearrange them in the given order.

输入格式

The first line contains three positive integers A, B and C, not necessarily in that order. All three numbers will be less than or equal to 100. The second line contains three uppercase letters 'A', 'B' and 'C' (with no spaces between them) representing the desired order.

输出格式

Output the A, B and C in the desired order on a single line, separated by single spaces.

题意翻译

【题目描述】

三个整数分别为 A,B,CA,B,C。这三个数字不会按照这样的顺序给你,但它们始终满足条件:A < B < CA<B<C。为了看起来更加简洁明了,我们希望你可以按照给定的顺序重新排列它们。

【输入格式】

第一行包含三个正整数 A,B,CA,B,C,不一定是按这个顺序。这三个数字都小于或等于 100100。第二行包含三个大写字母 AA、BB 和 CC(它们之间没有空格)表示所需的顺序。

【输出格式】

在一行中输出 AA,BB 和 CC,用一个 (空格)隔开。

感谢 @smartzzh 提供的翻译

输入输出样例

输入 

1 5 3
ABC

输出 

1 3 5

输入 

6 4 2
CAB

输出 

6 2 4
#include<bits/stdc++.h>
using namespace std;
int main(){
	int a[3],i;
	char x,y,z;
	for(i=0;i<3;i++){
		cin >> a[i]; 
	}
	cin >> x >> y >> z;
	sort(a,a+3);
	if(x=='A'&&y=='B'&&z=='C'){
		cout << a[0] << " " << a[1] << " " << a[2] << endl;
	}	 
	if(x=='B'&&y=='A'&&z=='C'){
		cout << a[1] << " " << a[0] << " " << a[2] << endl;
	}
	if(x=='A'&&y=='C'&&z=='B'){
		cout << a[0] << " " << a[2] << " " << a[1] << endl;
	}
	if(x=='B'&&y=='C'&&z=='A'){
		cout << a[1] << " " << a[2] << " " << a[0] << endl;
	}
	if(x=='C'&&y=='A'&&z=='B'){
		cout << a[2] << " " << a[0] << " " << a[1] << endl; 
	}
	if(x=='C'&&y=='B'&&z=='A'){
		cout << a[2] << " " << a[1] << " " << a[0] << endl; 
	}
}

 


【P5720 】【深基4.例4】一尺之棰

 

题目描述

《庄子》中说到,“一尺之棰,日取其半,万世不竭”。第一天有一根长度为 aa 的木棍,从第二天开始,每天都要将这根木棍锯掉一半(每次除 22,向下取整)。第几天的时候木棍的长度会变为 11?

输入格式

输入一个正整数 aa,表示木棍长度。

输出格式

输出一个正整数,表示要第几天的时候木棍长度会变为 11。

输入输出样例

输入 

100

输出 

7

说明/提示

数据保证,1 \le a\le 10^91≤a≤109。

#include<bits/stdc++.h>
using namespace std;
int main(){
	int n,count=0;
	cin >> n;
	while(n>=1){
		n=n/2;
		count++;
	}
	cout << count << endl;
}

 


【P5723 】【深基4.例13】质数口袋

 

题目描述

小 A 有一个质数口袋,里面可以装各个质数。他从 22 开始,依次判断各个自然数是不是质数,如果是质数就会把这个数字装入口袋。口袋的负载量就是口袋里的所有数字之和。但是口袋的承重量有限,不能装得下总和超过 LL 的质数。给出 LL,请问口袋里能装下几个质数?将这些质数从小往大输出,然后输出最多能装下的质数个数,所有数字之间有一空行。

输入格式

一行一个正整数 LL。

输出格式

将这些质数从小往大输出,然后输出最多能装下的质数个数,所有数字之间有一空行。

输入输出样例

输入 

100

输出 

2
3
5
7
11
13
17
19
23
9

说明/提示

数据保证,1 \le L \le {10}^51≤L≤105。

#include<bits/stdc++.h>
using namespace std;
int main(){
	int n,i,j,sum=0,count=0;
	cin >> n;
	for(i=2;i<n;i++){
		for(j=2;j<i;j++){
			if(i%j==0){
				break;
			}
		}
		if(j>=i&&sum+i<=n){
			cout << i << endl;
			sum=sum+i;
			count++;
		}
	}
	cout << count << endl;
}

 


【P5726】 【深基4.习9】打分

 

题目描述

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

输入格式

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

第二行输入 nn 个正整数,第 ii 个正整数表示第 ii 个评委打出的分值。

输出格式

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

输入输出样例

输入 

5
9 5 6 8 9

输出 

7.67

说明/提示

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

#include<bits/stdc++.h>
using namespace std;
int main(){
	int n,i,m;
	double sum=0,average=0;
	cin >> n;
	int a[n];
	if(n>=3&&n<=1000){
	for(i=0;i<n;i++){
		cin >> a[i];
	}
	sort(a,a+n);
	for(i=1;i<n-1;i++){
		sum=sum+a[i];
	}
	m=n-2;
	average=sum/m;
	printf("%.2lf\n",average); 
}
}

 


【P2669】 [NOIP2015 普及组] 金币

 

题目背景

NOIP2015 普及组 T1

题目描述

国王将金币作为工资,发放给忠诚的骑士。第一天,骑士收到一枚金币;之后两天(第二天和第三天),每天收到两枚金币;之后三天(第四、五、六天),每天收到三枚金币;之后四天(第七、八、九、十天),每天收到四枚金币……;这种工资发放模式会一直这样延续下去:当连续 nn 天每天收到 nn 枚金币后,骑士会在之后的连续 n+1n+1 天里,每天收到 n+1n+1 枚金币。

请计算在前 kk 天里,骑士一共获得了多少金币。

输入格式

一个正整数 kk,表示发放金币的天数。

输出格式

一个正整数,即骑士收到的金币数。

输入输出样例

输入 #1复制

6

输出 #1复制

14

输入

1000

输出 

29820

说明/提示

【样例 1 说明】

骑士第一天收到一枚金币;第二天和第三天,每天收到两枚金币;第四、五、六天,每天收到三枚金币。因此一共收到 1+2+2+3+3+3=141+2+2+3+3+3=14 枚金币。

对于 100\%100% 的数据,1\le k\le 10^41≤k≤104。

#include<iostream>	
using namespace std;
int main()
{
	int n,k,c,i,sum=0;
    cin >> k;
    c=n=1;
    for(i=1;i<=k;i++)
    {
        sum=sum+c;
        n--;
        if(n==0)
        {
            c++;
            n=c;
        }
    }
    cout << sum;
    return 0;
}

 


 Over

Poweroff

  • 6
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 5
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Enovo_你当像鸟飞往你的山

好好读书!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值