预测帕鲁
预测帕鲁
https://ac.nowcoder.com/acm/contest/80917/E
预测帕鲁
标签: 数学
难度: 2颗星
思路:
先计算出子代帕鲁的繁育值,将上去整转换为下去整,也可以用ceil()
函数上去整。然后从左到右遍历找到繁育值
和子代差值最小的帕鲁即可,需要注意差值相同的情况应该取下标校的帕鲁。
示例:
#include <bits/stdc++.h>
using namespace std;
const int N=510;
vector<int>p(N+1);
int n,x,y;
int main()
{
cin>>n;
for(int i=1;i<=n;i++)
cin>>p[i];
cin>>x>>y;
int c=(p[x]+p[y]+1)/2;
int diff=1e9,son=0;
for(int i=1;i<=n;i++)
{
if(abs(p[i]-c)<diff)
{
diff=abs(p[i]-c);
son=i;
}
}
cout<<son<<endl;
return 0;
}
补充:
在C++中,ceil()
函数是数学库 <cmath>
或 math.h
中的一个函数,它用于计算一个数的上限(即不小于给定数的最小整数值)。ceil()
函数常用于需要将浮点数向上取整到最接近的整数时。
函数的原型如下:
double ceil(double x);
float ceil(float x); // C++ 中的重载版本
long double ceil(long double x); // C++ 中的重载版本
参数 x
是一个浮点数,可以是 double
、float
或 long double
类型。
函数的返回值:
- 返回参数
x
的上限整数。对于正数,它向上取整到最接近的整数;对于负数,它向下取整到最接近的整数。
这里有一个简单的示例,展示了如何使用 ceil()
函数:
#include <iostream>
#include <cmath> // 包含ceil()函数的头文件
int main() {
double num = 3.14;
std::cout << "原始数值: " << num << std::endl;
std::cout << "向上取整后的数值: " << ceil(num) << std::endl;
return 0;
}
在这个示例中,我们计算了数值 3.14
的上限整数,程序将输出 原始数值: 3.14
和 向上取整后的数值: 4
。
ceil()
函数在处理金钱或需要向上取整的场合非常有用,比如,如果你需要计算出至少需要多少个盒子来装下一定数量的物品,即使最后一个盒子没有完全装满。