洛谷题单 CCF GESP C++ 一级上机题(一)

1.B3846 [GESP样题 一级] 闰年求和

 

题目描述

小明刚刚学习了如何判断平年和闰年,他想知道两个年份之间(不包含起始年份和终止年份)的闰年年份具体数字之和。你能帮帮他吗?

输入格式

输入一行,包含两个整数,分别表示起始年份和终止年份。约定年份在 11 到 20222022 之间。

输出格式

输出一行,包含一个整数,表示闰年年份具体数字之和。

输入输出样例

输入 #1复制

2018 2022

输出 #1复制

2020

代码:

#include<bits/stdc++.h>
#define tt typedef
#define jzl 12345
using namespace std;
tt int ii;
tt char cc;
tt long long ll;
ii i,ans,x,y;
ii main(){
	cin>>x>>y;
	for (ii i = x + 1; i <= y - 1; i++){
		if (i % 400 == 0 || (i % 4 == 0 && i % 100 != 0)){
			    ans = ans + i; 
			}
	}
	cout<<ans<<endl;
	return 0;
}

 2.B3847 [GESP样题 一级] 当天的第几秒

题目描述

小明刚刚学习了小时、分和秒的换算关系。他想知道一个给定的时刻是这一天的第几秒,你能编写一个程序帮帮他吗?

输入格式

输入一行,包含三个整数和一个字符。三个整数分别表示时刻的时、分、秒;字符有两种取值,大写字母'A'表示上午,大写字母'P'表示下午。

输出格式

输出一行,包含一个整数,表示输入时刻是当天的第几秒。

输入输出样例

输入 #1复制

0 0 0 A

输出 #1复制

0

输入 #2复制

11 59 59 P

输出 #2复制

86399

 代码:

#include<bits/stdc++.h>
#define tt typedef
#define jzl 1314
using namespace std;
tt int ii;
tt char cc;
tt string st;
tt long long ll;
tt float ff;
ii hour,minute,second;
char ans;
ii main(){
	cin>>hour>>minute>>second>>ans;
	ii tot=hour*3600+minute*60+second*1;
	if(ans=='P'){
		tot+=12*3600;
	}
	cout<<tot<<endl;
	return 0;
}

 3.B3834 [GESP202303 一级] 长方形面积

题目描述

小明刚刚学习了如何计算长方形面积。他发现,如果一个长方形的长和宽都是整数,它的面积一定也是整数。现在,小明想知道如果给定长方形的面积,有多少种可能的长方形,满足长和宽都是整数?如果两个长方形的长相等、宽也相等,则认为是同一种长方形。约定长方形的长大于等于宽。正方形是长方形的特例,即长方形的长和宽可以相等。

输入格式

输入一行,包含一个整数 A,表示长方形的面积。约定 2≤A≤1000。

输出格式

输出一行,包含一个整数 C,表示有 C 种可能的长方形。

输入输出样例

输入 #1复制

4

输出 #1复制

2

输入 #2复制

6

输出 #2复制

2
#include<bits/stdc++.h>
#define tt typedef
#define jzl 1314
using namespace std;
tt int ii;
tt char cc;
tt string st;
tt long long ll;
tt float ff;
ii a,b;
ii main(){
	cin>>a;
	for(ii i=1;i*i<=a;i++){
		if(a%i==0){
			b++;
		}
	}
	cout<<b<<endl;
	return 0;
}

4 .B3835 [GESP202303 一级] 每月天数

题目描述

小明刚刚学习了每月有多少天,以及如何判断平年和闰年,想到可以使用编程方法求出给定的月份有多少天。你能做到吗?

输入格式

输入一行,包含两个整数 A,B,分别表示一个日期的年、月。约定 2000≤A≤3000,1≤B≤12。

输出格式

输出一行,包含一个整数,表示输入月份有多少天。

输入输出样例

输入 #1复制

2022 1

输出 #1复制

31

输入 #2复制

2020 2

输出 #2复制

29

代码:

#include<bits/stdc++.h>
#define tt typedef
#define jzl 12345
using namespace std;
tt int ii;
tt char cc;
tt long long ll;
tt float ff;
bool yxr(ii year){
	if(year%4==0){
		if(year%100==0){
			if(year%400==0){
				return true;
			}
			else{
				return false;
			}
		}
		else{
			return true;
		}
	}
	return false;
}
ii a,b,c[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
ii main(){
	cin>>a>>b;
	if(yxr(a)){
		c[2]=29;
	}
	cout<<c[b]<<endl;
	return 0;
}

制作不易,点赞关注 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值