题意:水以每年50平方米半圆形扩散,问多少年扩散到点(x,y);
思路: (0,0) 到(x,y)距离设为r,k年
PI * r * r / 2 = 50*k
k = PI * r * r / 100;向上取整,此题有一大坑PI只能取3.1415926,多一位少一位都WA
#include<iostream>
#include<cstring>
#include<cstdio>
#include<cmath>
using namespace std;
const double PI = 3.1415926;
double f(double x,double y)
{
return sqrt(x*x+y*y);
}
int main()
{
int t,k = 0;
scanf("%d",&t);
while(t--)
{
double n,m;
scanf("%lf%lf",&n,&m);
double r = f(n,m);
printf("Property %d: This property will begin eroding in year %.0lf.\n",++k,ceil(PI*r*r / 100));
}
printf("END OF OUTPUT.\n");
return 0;
}
本文提供了一种算法,用于计算水以每年50平方米半圆形扩散模式下,达到指定坐标点所需的时间。算法核心在于通过圆的面积公式与给定扩散速度建立关系,并进行精确计算。
291

被折叠的 条评论
为什么被折叠?



