返回首页 返回题库

数三角形

C++ 入门 GESP二级真题 #循环#枚举

题目描述

题面描述

直角三角形有两条直角边与一条斜边,设两条直角边的长度分别为a和b,则直角三角形的面积为a*b/2。

请你计算当直角边长a、b均取不超过n的正整数时,有多少个不同的面积为整数的直角三角形。直角边长分别为(a,b)和(a′,b′)的两个直角三角形相同,当且仅当a==a′且b==b′或者a==b′且b==a′。

输入格式

一行,一个整数n,表示直角边长的最大值。

输出格式

输出一行,一个整数,表示不同的直角三角形数量。

样例1

输入:

3

输出:

3

样例2

输入:

5

输出:

9

数据范围

对于所有测试点,保证1 <= n <= 1000。


时间限制

1.0 s

内存限制

512.0 MB

💡 查看提示(先自己想一想再看)
本题考察枚举法与条件判断的使用。为了避免重复计数,可以固定a <= b来枚举所有可能的直角边组合,只需判断a*b是否为偶数就能保证面积为整数,符合条件则计数加一即可。注意数据范围较小,两层循环的时间复杂度完全可以满足要求。
⚙ 开始做这道题 0 人做过 · 0 收藏 · 5 浏览

讨论(0)