HDU

来源:互联网 发布:java jdbc oracle 编辑:程序博客网 时间:2024/06/01 07:50

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6154

题目大意:可以画的线为在一个单位为1方格中画边或画对角线,问最少需要画多少次可以使面积大于给定值

参考博客:http://blog.csdn.net/davenny/article/details/77414882

AC代码:

#include<cstdio>#include<cmath>using namespace std;int main(){    int arr[] = { 0,4,4,6,6,7,8,8,8 };    int t;scanf("%d", &t);    while (t--)    {        int n;scanf("%d", &n);        if (n <= 8)        {            printf("%d\n", arr[n]);             continue;        }        int lenth = sqrt(n / 2.0) + 1e-5;        if (2 * lenth*lenth >= n)            printf("%d\n", 4 * lenth);        else if (2 * lenth*lenth + lenth - 0.5 >= n)            printf("%d\n", 4 * lenth + 1);        else if (2 * lenth*lenth + 2 * lenth >= n)            printf("%d\n", 4 * lenth + 2);        else if (2 * lenth*lenth + 3 * lenth + 0.5 >= n)            printf("%d\n", 4 * lenth + 3);        else             printf("%d\n", 4 * lenth + 4);    }    return 0;}
原创粉丝点击