A:
解题思路:
判断x+y和x+z哪个最小就行
下面是c++代码:
#include<iostream>
using namespace std;
int main()
{
long long x,y,z;
cin >> x >> y >> z;
cout << min(x + y,x + z);
return 0;
}
B:
解题思路:
首先判断n是否是偶数,如果是偶数就不需要删除数字,如果不是,那就依次删除最后一位来判断当前删除后的数字是否是偶数,直到判断到0为止,0也是偶数,因为它是2的倍数。
下面是c++代码:
#include<iostream>
using namespace std;
int main()
{
int n,num = 0;
cin >> n;
if(n % 2 == 0){
cout << num;
return 0;
}
while(n != 0){
num++;
n = n / 10;
if(n % 2 == 0){
break;
}
}
cout << num;
return 0;
}
C:
解题思路:
计算半径为a + b的面积,PI取到15位,不然精度不够。
下面是c++代码:
#include<iostream>
#include<cmath>
#define PI 3.141592653589793
using namespace std;
int main()
{
long long a,b;
cin >> a >> b;
double c = a + b;
printf("%.10lf",PI * c * c);
return 0;
}
D:
解题思路:
题目说平飞可以不算,那么就去掉平飞的山峰,只要判断三个山峰按照低-高-低就算作翻越一次。
下面是c++代码:
#include<iostream>
using namespace std;
int main()
{
int n,arr[1000000],sum = 0,index = 0,brr[1000000];
cin >> n;
for(int i = 0;i < n;i++){
cin >> arr[i];
}
brr[0] = arr[0];
index++;
if(n < 3){
cout << 0;
return 0;
}
for(int i = 1;i < n;i++){
if(arr[i] != arr[i - 1]){
brr[index++] = arr[i];
}
}
for(int i = 1;i < index - 1;i++){
if(brr[i] > brr[i - 1] && brr[i] > brr[i + 1]){
sum++;
}
}
cout << sum;
return 0;
}
E:
解题思路:
大于y崇拜值就加3,那么就把大于y的所有题目全放在前面来讲,也就是最大崇拜值等于难度大于y的题目的数量×3,如果都小于x,崇拜值最大就是0。
下面是c++代码:
#include<iostream>
using namespace std;
int main()
{
int n,x,y,arr[200000],num = 0;
cin >> n >> x >> y;
for(int i = 0;i < n;i++){
cin >> arr[i];
if(arr[i] > y){
num += 3;
}
}
cout << num;
return 0;
}