【GSEP202303 C++】1级 长方形面积

[GSEP202303 一级] 长方形面积

题目描述

小明刚刚学习了如何计算长方形面积。他发现,如果一个长方形的长和宽都是整数,它的面积一定也是整数。现在,小明想知道如果给定长方形的面积,有多少种可能的长方形,满足长和宽都是整数?

如果两个长方形的长相等、宽也相等,则认为是同一种长方形。约定长方形的长大于等于宽。正方形是长方形的特例,即长方形的长和宽可以相等。

输入格式

输入一行,包含一个整数

输出格式

输出一行,包含一个整数

样例 #1

样例输入 #1

复制代码
4

样例输出 #1

复制代码
2

样例 #2

样例输入 #2

复制代码
6

样例输出 #2

复制代码
2

提示

2 种长方形面积为 4,它们的长宽分别为2 × 2、4 × 1。

2 种长方形面积为 6,它们的长宽分别为3 × 2、6 × 1。

解题思路

这是一个求解整数长方形数量的问题,我们可以使用循环从给定面积的最小值到最大值,循环考虑每个可能的整数长和宽,并计算其面积是否等于给定面积。

参考程序

cpp 复制代码
#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

cpp 复制代码
#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

相关推荐
Justinyh8 小时前
1、CUDA 编程基础
c++·人工智能
white-persist9 小时前
差异功能定位解析:C语言与C++(区别在哪里?)
java·c语言·开发语言·网络·c++·安全·信息可视化
ShineWinsu9 小时前
对于数据结构:链式二叉树的超详细保姆级解析—中
数据结构·c++·算法·面试·二叉树·校招·递归
liu****10 小时前
20.传输层协议TCP
服务器·网络·数据结构·c++·网络协议·tcp/ip·udp
沐怡旸10 小时前
【穿越Effective C++】条款20:宁以pass-by-reference-to-const替换pass-by-value——参数传递的效率与语义
c++·面试
八个程序员10 小时前
c++音乐——《两只老虎》
c++·游戏
..空空的人10 小时前
C++基于websocket的多用户网页五子棋 ---- 模块介绍1
开发语言·c++·websocket
叫我龙翔11 小时前
【数据结构】从零开始认识B树 --- 高效外查找的数据结构
数据结构·c++·b树
zzzsde12 小时前
【C++】红黑树:使用及实现
开发语言·c++·算法
点云SLAM12 小时前
C++ 中的栈(Stack)数据结构与堆的区别与内存布局(Stack vs Heap)
开发语言·数据结构·c++·内存布局·栈数据结构·c++标准算法·heap内存分配