SDNUOJ 1155.Precios de pizza

Significado de la pregunta: múltiples grupos de entrada, cada grupo tiene N muestras, cada grupo tiene dos muestras PD
P es el precio de la pizza, D es el diámetro de la pizza.
Encuentre el diámetro correspondiente al precio más pequeño por unidad de área,
preste atención al formato de salida Salida

#include <cstdio>
#include <cstring>
#include <string>
#include <cmath>
#include <iostream>
#include <algorithm>
#include <vector>
#include <stack>
#include <queue>
#include <stdlib.h>
#include <sstream>
#include <map>
#include <set>
typedef unsigned long long ull;
using namespace std;

double f(int x, int y)//定义了一个函数,用来求单位面积下的价钱,方便使用。
{
    
    
    double pi = acos(-1);//这可是求π的好方法哎
    double p = 4*y/(pi*x*x);
    return p;
}
double ar[10005];//这个数组存f(D,P)的值,用于后续比较大小
int br[10005];//这个数组用于存每个ar对应 的披萨的尺寸
int main()
{
    
    
    int D, P, n;
    int sum;
    int ans = 0;
    while(cin>>n && n!=0){
    
    
    for(int i = 0; i < n; i++)
    {
    
    
        sum= 0;
        cin>>D>>P;
        br[i] = D;
        ar[i] = f(D,P);
    }
    for(int i = 1; i<n; i++)
    {
    
    
        if(ar[sum] > ar[i])
        {
    
    
            sum = i;//非常关键,因为如果用排序,得到的最后那个ar[0],对应的br是不知道的,所以每次比较都要用sum储存一下

        }
    }
    ans++;
    cout<<"Menu "<<ans<<": "<<br[sum]<<'\n';

    }
}





Supongo que te gusta

Origin blog.csdn.net/weixin_51216553/article/details/109565418
Recomendado
Clasificación