zoukankan      html  css  js  c++  java
  • hdu 4486

    给你一个长度,求以这个长度为周长的整数三角形个数为多少,如果非等腰则个数加一

    分类,等腰与非等腰,水题一个,就是边界处理需要注意

    代码:

     1 #include <cstdio>
     2 #include <iostream>
     3 using namespace std;
     4 int big(int a, int b)///return x bigger than a * 1.0 / b
     5 {
     6     return a / b + 1;
     7 }
     8 int small(int a, int b)///return x smaller than a * 1.0 / b
     9 {
    10     if(a % b == 0) return a / b - 1;
    11     else return a / b;
    12 }
    13 int hasone(int n)
    14 {
    15     int num = 0;
    16     for(int i = big(n, 3); i <= small(n, 2); i++)
    17     {
    18         num += small(n-i, 2) - big(n-2*i, 1) + 1;
    19     }
    20 
    21     return num*2;
    22 }
    23 int hastwo(int n)
    24 {
    25     return small(n, 2) - big(n, 4) + 1;
    26 }
    27 int solve(int x)
    28 {
    29     return hastwo(x) + hasone(x);
    30 }
    31 
    32 int main()
    33 {
    34     int n;
    35     cin >> n;
    36     while(n--)
    37     {
    38         int a, b;
    39         cin >> a >> b;
    40         cout << a << " " << solve(b) << endl;
    41     }
    42     return 0;
    43 }

    关于这一题需要说的有两点:

    1.英文读题能力,旁边有着一本字典也无法读出这道题的意思,哪怕用了谷歌翻译也不知道意思,最后还是看的博客才知道他在讲什么。

    2.边界处理,在看别人的代码时候发现有一个细节用的非常好

    for(int i = (m+2)/3; i < (m+1) / 2; i++),这就是我的big和small函数。

    print “ 欢迎来到渣小狼的博客,这既是博客,也是日记,里面记录了小狼的学习经历还有一些小狼的见解,非常希望每一个来到这里的人能够留下只言片语,更加的希望留下的是对于小狼的不足的补充,谢谢(*^__^*) 嘻嘻……”
  • 相关阅读:
    SqL读取XML、解析XML、SqL将XML转换DataTable、SqL将XML转换表
    C#DataTable复制、C#DataTable列复制、C#DataTable字段复制
    Dev、GridControl的模糊查询
    C#两个时间相减
    C# % 和 /
    C#时间、日期 的操作
    linux文件操作
    shell ftp上传下载文件
    POM详细配置
    maven 本地setting.xml配置
  • 原文地址:https://www.cnblogs.com/wolf-yasen/p/6735794.html
Copyright © 2011-2022 走看看