17230 计算轴承半径[C]

17230 计算轴承半径

时间限制:1000MS  内存限制:65535K
提交次数:57 通过次数:10 收入:104

题型: 编程题   语言: C++;C

Description

	轴承是一种十分常见的,在机械传动过程中起固定和减小载荷摩擦系数的部件。也可以说,当其它机件在轴上彼此产生相对运动时,用来降低动力传递
过程中的摩擦系数和保持轴中心位置固定的机件。轴承是当代机械设备中一种举足轻重的零部件。
	详细可以参考这个链接:http://baike.baidu.com/view/5545.htm?noadapt=1
	对于大多数的轴承,它们的基本结构都是一个圆柱体。从柱体的一个面看,每个轴承的轮廓都是由两个同心圆构成,在两个同心圆之间有许多的小圆围
绕。其中,调心球轴承就是一个经典的模型。
	现在要求轴承里至少要能够放置N个排列在大圆边界内的半径为R的小球(忽略小圆),柱体的底面大圆半径至少要多少?为了精确制造,要求给出的半
径必须为整数。



输入格式

	第一行输入一个正整数T,表示将要输入的测试数据数量。
	接下来有T行,每行输入两个正整数N,R,分别表示小球的个数以及小球的半径。
	(T<=100,1<=N,R<=1000)


输出格式

	对于每一组测试数据,输出一行”Case X: ”,其中X表示第几组数据,然后是一个整数,表示能够放置全部小球的柱体的底面半径至少是多少。


输入样例

3
2 1
3 2
5 4


输出样例

Case 1: 2
Case 2: 5
Case 3: 11


提示

第一组数据中,要包含2个半径为1的小球,柱体底面半径最少是2。
第二组数据中,要包含3个半径为2的小球,柱体底面半径最少是4.30940。
第三组数据中,要包含5个半径为4的小球,柱体底面半径最少是10.80520。


来源

LyonLys

作者

201131001011


思路:本题题意是把小圆排成一个环,问能包含这个环(内切)的大圆的半径至少是多少(整型)。如何求出这个的半径,看下图。

注意,本题有个比较坑的就是PI必须是自定义3.1415965 double,而且大圆的半径必须声明为float型。


代码


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

int main()
{
    int t,n,r,i=1;
    float m;
    double PI=3.1415926;
    scanf("%d",&t);
    while(t--)
    {
        scanf("%d%d",&n,&r);
        if(n<3)
            m=n*r;
        else
            m=(r/sin(PI/n)+r);
        printf("Case %d: %.0f\n",i++,ceil(m));
    }
    return 0;
}


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值