猫史档案馆


一道数学题(编写程序)

用户:方圆三角方圆三角查看:14 回复:6 评论:14 创建时间:2023-06-22T13:15:07


此题纯为自编,若有相似,纯属巧合。

 

小圆:数学你怎么编写程序???

小角:这其实是道编(shu)程(xue)题。

小圆:我懂(meng)了。

 

——————正文开始——————

题目名:圆三角2

建议用时:10~20分钟

难度:75%

提交代码:Python或C++

 

【题目背景】

方要正,圆要圆,角要尖。     ——题目编者(方圆三角)

 

【题目描述】

图1是一个图形(该图形纯手绘)。

 

center_image

图1

 

求图形的红色、黄色、绿色的周长(关于这个图的信息,请看【题目要求】)。

 

【题目要求】

在计算关于圆的题目时,π取3。

∠AOB=90°,输入OA和OB的长度,求红色、黄色、绿色的周长。

 

【输入格式】

输入包含两行,为OA和OB的长度(单位:cm)。

 

【输出格式】

输出包含四行,为红色、黄色、绿色的周长,全部保留2为小数。

 

【样例输入输出】

#1输入:

3
4

#1输出:

10.80
15.60
8.40

注:因为这是大型计算,如计算有误,请将样例编号、正确样例发在评论区。

 

【数据规模与运算】

对于50%的数据,1<=OA,OB<=100,保证(OA*OA+OB*OB)**0.5是整数;

对于100%的数据,1<=OA,OB<=10**9,不一定保证(OA*OA+OB*OB)**0.5是整数。

 

【提示】

小方发现了这道题能用勾股定理求出圆的半径。


回复

上一页1 页 / 共 1下一页
Ctrl_VCtrl_V

#include<bits/stdc++.h>
using namespace std;
double a,b,c,r;
const int pi=3;
int main()
{
  scanf("%lf%lf",&a,&b);
  c=sqrt(a*a+b*b);//勾股定理 
  r=1.0*a*b/c;//根据切线定理可得r为△AOB的高
  printf("%.2f\n",a-r+b-r+c+0.5*pi*r);
  printf("%.2f\n",2.0*r+1.5*pi*r);
  printf("%.2f",2.0*r+0.5*pi*r);
  return 0;
}

点赞1


评论


亿个史蒂夫亿个史蒂夫

我也懂(meng)了

emotion_编程猫_翻白眼

点赞0


评论


方圆三角方圆三角

检测点(1个):

#1

3
4

(虽然只有一个检查点……)

点赞0


评论


啊阿米诺斯啊阿米诺斯

#include <stdio.h>
#include <math.h>

int main(){
  int oa,ob;
  scanf("%d%d",&oa,&ob);
  double s=oa*ob/2,h=s*2/sqrt(oa*oa+ob*ob),qrt=3*h*h/4,y=qrt*3,r=s-qrt;
  printf("%f\n%f\n%f\n%f\n",r,y,qrt,r+y+qrt);
  return 0;
}

点赞0


评论


啊阿米诺斯啊阿米诺斯

#include <stdio.h>
#include <math.h>

int main(){
  int oa,ob;
  scanf("%d%d",&oa,&ob);
  double s=oa*ob/2,ab=sqrt(oa*oa+ob*ob),h=s*2/ab,o=h*6,qrt=o/4,r=qrt+ab+oa+ob-(h*2);
  printf("%f\n%f\n%f\n",r,o/4*3+2*h,qrt+h*2);
  
  return 0;
}

点赞0


评论


一个黄脸一个黄脸

我懂(不懂)了

center_image

点赞0


评论