C01.L13.结业测试.测试题2.山峰数(DLOI2018t1)
题目描述
给出一个五位数的正整数, 不妨假设这个整数的万位数字是 a ,千位数字是 b,百位数字是 c ,十位数字是 d ,个位数字是 e 。如果满足: a < b < c 且 c > d > e, 那么这个五位数就是山峰数。
输入格式
一个五位数。
输出格式
如果输入的五位数是山峰数则输出“yes” , 否则输出“no” , 其中双引号不用输出。
样例
输入数据 1
15764
Copy
输出数据 1
yes
代码:
#include<bits/stdc++.h>
using namespace std;
string a;
bool k=true;
int main(){
cin>>a;
for(int i=1;i<=2;i++)
{
if(a[i]<=a[i-1])
{
k=false;
}
}
for(int i=3;i<=4;i++)
{
if(a[i]>=a[i-1])
{
k=false;
}
}
if(k)
{
cout<<"yes";
}
else
{
cout<<"no";
}
return 0;
}
C01.L13.结业测试.测试题4.最大跨度
题目描述
给定一个长度为 n 的非负整数序列,请计算序列的最大跨度值(最大跨度值=最大值减去最小值)。
输入格式
两行:
第 1 行为序列中整数的个数 n ( 1 <= n <= 1000 )
第 2 行为序列的 n 个不超过 1000 的非负整数,整数之间用空格隔开。
输出格式
三行:
第 1 行为序列中的最小值所在的位置和最小值,整数之间用空格隔开。
第 2 行为序列中的最大值所在的位置和最大值,整数之间用空格隔开。
第 3 行为最大跨度值。
样例
输入数据 1
6
3 0 8 7 5 9
Copy
输出数据 1
2 0
6 9
9
Copy
提示:数据中最大值和最小值只出现了一次,保证答案唯一
代码:
#include<bits/stdc++.h>
using namespace std;
int main() {
int n;
cin>>n;
vector<int> a(n);
for(int i=0;i<n;i++)
{
cin>>a[i];
}
int b=min_element(a.begin(),a.end())-a.begin();
int t=max_element(a.begin(),a.end())-a.begin();
cout<<b+1<<" "<<a[b]<<endl;
cout<<t+1<<" "<<a[t]<<endl;
cout<<a[t]-a[b]<<endl;
return 0;
}
#C. C02.L08.模拟算法.课后附加题2.排座位(NHOI2013t3)
- 传统题1000ms256MiB
题目描述
六一儿童节当天,晨晨学校举行“庆六一”活动,活动在体育馆举行,这次座位是按学号“之”字形排列,如下图是 20 位学生安排在 4*5 的座位上的排列情况。
现在存在的一个问题是,如何让学生根据自己的学号很快的知道自己所在位置(也就是自己位置的行、列)。
输入格式
第一行:包括两个数,R和C(1<=R,C<=100),表示 R 行 C 列。
第二行:一个整数 n( 1 <= n <= R*C ),代表有 n 个学生想知道自己的具体位置。
接下来 n 行:每一行一个整数,代表询问位置学生的学号。
输出格式
输出 n 行,每一行两个整数,代表询问位置学生的行和列。
样例
输入数据 1
4 5
3
4
13
19
Copy
输出数据 1
1 4 3 3 4 2
代码:
#include<bits/stdc++.h>
using namespace std;
int main()
{
int a,b,n;
cin>>a>>b>>n;
vector<vector<int>>c(a,vector<int>(b));
int y=1;
for(int i=0;i<a;i++)
{
if(i%2==0)
{
for(int j=0;j<b;j++)
{
c[i][j]=y++;
}
}
else
{
for(int j=b-1;j>=0;j--)
{
c[i][j]=y++;
}
}
}
for(int i=0;i<n;i++)
{
int m;
cin>>m;
int q,x;
bool t=false;
for(int i=0;i<a;i++)
{
for(int j=0;j<b;j++)
{
if(c[i][j]==m)
{
q=i+1;
x=j+1;
t=true;
break;
}
}
if(t)
{
break;
}
}
cout<<q<<" "<<x<<endl;
}
return 0;
}
#D. C02.L08.模拟算法.课后附加题1.更多闰年(GCOI2017六年级t1)
- 传统题1000ms256MiB
题目描述
输入两个正整数 a 和 b,表示开始的年份和结束的年份,问从 a 年到 b 年有多少 闰年?闰年只需要满足如下两个条件之一:
-
能整除 400。
-
能整除 4,但不能整除 100 。
输入格式
2 个整数 a 和 b,范围 在 [1, 1000000000 ]。
输出格式
一个整数。
样例
输入数据 1
1 10000
Copy
输出数据 1
2425
代码:
#include <bits/stdc++.h>
using namespace std;
int main()
{
long long a,b;
scanf("%lld%lld",&a,&b);
printf("%lld\n",(b/4-(a-1)/4)-(b/100-(a-1)/100)+(b/400-(a-1)/400));
return 0;
}
谢谢观看!!
标签:输出,int,W14,整数,复习题,格式,Copy,输入 From: https://blog.csdn.net/chzh324324/article/details/144238065