GESP认证C++编程真题解析 | 202303 一级

编程题

B3834 长方形面积

【题目来源】

洛谷:[B3834 GESP202303 一级] 长方形面积 - 洛谷

【题目描述】

小明刚刚学习了如何计算长方形面积。他发现,如果一个长方形的长和宽都是整数,它的面积一定也是整数。现在,小明想知道如果给定长方形的面积,有多少种可能的长方形,满足长和宽都是整数?如果两个长方形的长相等、宽也相等,则认为是同一种长方形。约定长方形的长大于等于宽。正方形是长方形的特例,即长方形的长和宽可以相等。

【输入】

输入一行,包含一个整数 \(A\),表示长方形的面积。约定 \(2 \leq A \leq 1000\)

【输出】

输出一行,包含一个整数 \(C\),表示有 \(C\) 种可能的长方形。

【输入样例】

4

【输出样例】

2

【算法标签】

《洛谷 B3834 长方形面积》 #循环结构# #GESP# #2023#

【代码详解】

#include <bits/stdc++.h>
using namespace std;

int s;      // 输入的数字
int ans;    // 存储约数的个数

int main()
{
    // 输入数字s
    cin >> s;
    
    // 遍历从1到sqrt(s)的所有整数
    for (int i = 1; i * i <= s; i++)
    {
        // 检查i是否是s的约数
        if (s % i == 0)
        {
            // 如果i是约数,计数器加1
            ans++;
        }
    }
    
    // 输出约数的个数
    cout << ans << endl;
    
    return 0;
}

【运行结果】

4
2

B3835 每月天数

【题目来源】

洛谷:[B3835 GESP202303 一级] 每月天数 - 洛谷

【题目描述】

小明刚刚学习了每月有多少天,以及如何判断平年和闰年,想到可以使用编程方法求出给定的月份有多少天。你能做到吗?

【输入】

输入一行,包含两个整数 \(A, B\),分别表示一个日期的年、月。约定 \(2000 \leq A \leq 3000\)\(1 \leq B \leq 12\)

【输出】

输出一行,包含一个整数,表示输入月份有多少天。

【输入样例】

2022 1

【输出样例】

31

【算法标签】

《洛谷 B3835 每月天数》 #分支结构# #GESP# #2023#

【代码详解】

#include <bits/stdc++.h>
using namespace std;

int a;  // 年份
int b;  // 月份

int main()
{
    // 输入年份和月份
    cin >> a >> b;
    
    // 判断月份并输出对应天数
    if (b == 1 || b == 3 || b == 5 || b == 7 || b == 8 || b == 10 || b == 12)
    {
        // 大月:1月、3月、5月、7月、8月、10月、12月,有31天
        cout << 31;
    }
    else if (b == 4 || b == 6 || b == 9 || b == 11)
    {
        // 小月:4月、6月、9月、11月,有30天
        cout << 30;
    }
    else
    {
        // 2月:需要判断是否为闰年
        if ((a % 4 == 0 && a % 100 != 0) || (a % 400 == 0))
        {
            // 闰年:2月有29天
            cout << 29;
        }
        else
        {
            // 平年:2月有28天
            cout << 28;
        }
    }
    
    return 0;
}

【运行结果】

2022 1
31
posted @ 2026-03-14 19:34  团爸讲算法  阅读(6)  评论(0)    收藏  举报