圆柱体的表面积

问题描述:

        输入底面半径r和高h,输出圆柱体的表面积,保留3位小数,格式见样例。

样例输入:

        3.5 9

样例输出:

        Area = 274.889

 

分析:

        圆柱体的表面积由3部分组成:上底面积、下底面积和侧面积。由于上下底面积相等,完整的公式可以写成:表面积=底面积×2+侧面积。根据几何知识,底面积=πr2,侧面积=2πrh。

关键:

        这道题目的关键在于π的求法。如果是普通的程序,直接令π=3.14,或π=3.1415926......之类的;但关键是这是算法竞赛,所以如果你π=3.14和π=3.1415那结果肯定不一样,那正常情况一般不能通过。

        所以这就涉及到了反函数的内容。cos(π)=-1,所以acos(-1.0)=π。使用数学函数需要用到math.h。

代码:

#include<iostream>
#include<math.h>
using namespace std; 
int main()
{
	const double pi = acos(-1.0);//常量用const 
	double r, h, s1, s2, s;
	
	//1.输入 
	cin>>r>>h;
	
	//2.计算 
	s1 = pi*r*r;
	s2 = 2*pi*r*h;
	s = s1*2.0 + s2;
	
	//3.输出 
	printf("Area = %.3f\n", s);//保留三位小数用printf
	return 0;

}

 

说一下题外话。虽然我们是因为要输出后三位小数从而利用了printf;但有一个知识点,scanf会比cin更快,printf会比cout更快。当题目有明确要求:“本题的输入量(输出量)很大,请使用较快的输入(输出)方式”时,建议使用scanf和printf,或者关闭输入/输出流和stdio的同步,即调用ios::sync_with_stdio(false)。

 

 

  • 7
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值