已解决
【GSEP202303 C++】1级 长方形面积
来自网友在路上 145845提问 提问时间:2023-10-06 23:18:15阅读次数: 45
最佳答案 问答题库458位专家为你答疑解惑
[GSEP202303 一级] 长方形面积
题目描述
小明刚刚学习了如何计算长方形面积。他发现,如果一个长方形的长和宽都是整数,它的面积一定也是整数。现在,小明想知道如果给定长方形的面积,有多少种可能的长方形,满足长和宽都是整数?
如果两个长方形的长相等、宽也相等,则认为是同一种长方形。约定长方形的长大于等于宽。正方形是长方形的特例,即长方形的长和宽可以相等。
输入格式
输入一行,包含一个整数
输出格式
输出一行,包含一个整数
样例 #1
样例输入 #1
4
样例输出 #1
2
样例 #2
样例输入 #2
6
样例输出 #2
2
提示
2 种长方形面积为 4,它们的长宽分别为2 × 2、4 × 1。
2 种长方形面积为 6,它们的长宽分别为3 × 2、6 × 1。
解题思路
这是一个求解整数长方形数量的问题,我们可以使用循环从给定面积的最小值到最大值,循环考虑每个可能的整数长和宽,并计算其面积是否等于给定面积。
参考程序
#include <iostream>
using namespace std;
int main()
{int s,cnt=0;cin>>s;for(int i=1;i<=s;i++){if(i*(s/i)==s&&i>=(s/i)){cnt++;}}cout<<cnt;return 0;
}
测试结果
参考程序2
#include <iostream>
using namespace std;
int main()
{int s,cnt=0;cin>>s;for(int i=1;i<=s;i++){for(int j=1;j<=s;j++)if(i*j==s&&i>=j){cnt++;}}cout<<cnt;return 0;
}
测试结果2
双重for循环,可以实现功能,但是时间复杂度过高。
说明
所有程序均来自于个人思路,若有不严谨之处,欢迎指出!一起讨论!【GESP考级交流|CSP认证|信奥赛交流群】交流V:AI_XX666
查看全文
99%的人还看了
猜你感兴趣
版权申明
本文"【GSEP202303 C++】1级 长方形面积":http://eshow365.cn/6-16510-0.html 内容来自互联网,请自行判断内容的正确性。如有侵权请联系我们,立即删除!
- 上一篇: QT:SQLITE数据库编程
- 下一篇: L958. 二叉树的完全性检验 java