无线网络覆盖

14 篇文章 0 订阅
10 篇文章 0 订阅
/*
* 程序的版权和版本声明部分:
* Copyright (c) 2014,郑州大学SIAS国际学院
* 作    者:  王  杰
* 完成日期:2014 年 3 月 23 日
*
* 对任务及求解方法的描述部分:
* 输入描述: 略或见注释、总结
* 问题描述: 略或见注释、总结
* 程序输出: 略或见注释、总结
* 问题分析: 略或见注释、总结
* 算法设计: 略或见注释、总结
*/

#include<stdio.h>
#include<math.h>
int main()
{
    int t,count1;
    double l,d,r,count;
    scanf("%d",&t);
    while(t--){
        count=0;
        scanf("%lf%lf%lf",&l,&d,&r);
        if(4*r*r<d*d+1){
            printf("impossible\n");
            //printf("%lf %lf %lf %lf\n",r*r,4*r*r,d*d,d*d+1);
        }
        //这里可以应用贪心思想,也可以直接求出结果(数学问题)
        else{
            //1、直接数学问题求解,但就是在数据类型上有点绕
            count=l/(2*sqrt(r*r-d*d/4));
            //printf("%lf %lf %lf %lf %lf %lf\n",r*r,d*d,d*d/4,r*r-d*d/4,sqrt(r*r-d*d/4),2*sqrt(r*r-d*d/4));
            count=ceil(count);  //向上取整函数;floor() 向下取整;结果仍是double型
            count1=int(count);
            printf("%d\n",count1);

            //2、贪心方法
            /*
            while(l>0){
                l-=2*sqrt(r*r-d*d/4);
                //printf("%lf %lf %lf %lf %lf %lf\n",r*r,d*d,d*d/4,r*r-d*d/4,sqrt(r*r-d*d/4),2*sqrt(r*r-d*d/4));
                count++;
            }
            printf("%d\n",count);
            */

        }
    }
    return 0;
}


运行结果:


总结:见注释;主要还是数据类型之间的转换关系,在计算机内部,数据是怎么流转的

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值