东方博宜1345 - 玫瑰花圃

问题描述

有一块n×n(n≥5,且 n 是奇数)的红玫瑰花圃,由 n×n 个小正方形花圃组成,现要求在花圃中最中间的一行、最中间的一列以及 4 个顶点处种植粉色玫瑰,请问粉玫瑰占地面积占整个玫瑰花圃总面积的百分比是多少?
如 n=5,花圃形状如下,粉玫瑰占地百分比 =13/25=52.0%


如 n=7,花圃形状为如下,粉玫瑰占地百分比 =17/49=34.7%

输入

一个整数 n ( 5≤n≤99,且 n是奇数)

输出

粉玫瑰占总玫瑰园的百分比,结果保留 1 位小数,显示为百分比的形式。

样例

输入

5

输出

52.0%

代码1

#include <iostream>
using namespace std;

int main() {
    int n;
    cin >> n;

    int totalArea = n * n;
    int pinkArea = 5 * (n - 2) + 1;

    double pinkPercentage = static_cast<double>(pinkArea) / totalArea * 100;
    cout << fixed << setprecision(1) << pinkPercentage << "%" << endl;

    return 0;
}

该代码首先读入输入的整数 n,表示花圃的大小。

然后,我们计算花圃的总面积 totalArea = n * n

接下来,我们计算粉玫瑰占地的面积。根据题目描述,粉玫瑰的占地面积包括最中间的一行、最中间的一列以及 4 个顶点处的正方形花圃。我们可以观察到,除去这些区域之外的部分的面积是 (n - 2) * (n - 2),所以粉玫瑰占地的面积是 pinkArea = 5 * (n - 2) + 1

最后,我们计算粉玫瑰占总玫瑰园的百分比,并输出结果。这里我们使用了 static_cast<double>(pinkArea)pinkArea 转换为浮点数,然后除以 totalArea 得到百分比,并乘以 100。我们使用 fixedsetprecision(1) 来保留一位小数,并以百分比形式输出。

这种方法通过计算粉玫瑰占地面积和总面积的比例来得到百分比,以保留一位小数的形式输出结果。

代码2

#include <iostream>
#include <iomanip>
using namespace std;

int main() {
    int n;
    cin >> n;

    int totalArea = n * n;
    int pinkArea = 1 + 4 + 4 * (n - 2);

    double pinkPercentage = static_cast<double>(pinkArea) / totalArea * 100;
    cout << fixed << setprecision(1) << pinkPercentage << "%" << endl;

    return 0;
}

该代码首先读入输入的整数 n,表示花圃的大小。

然后,我们计算花圃的总面积 totalArea = n * n

接下来,我们计算粉玫瑰占地的面积。根据题目描述,粉玫瑰的占地面积包括最中间的一行、最中间的一列以及 4 个顶点处的正方形花圃。我们可以观察到,最中间的一行和最中间的一列的长度都是 1,所以它们占地的面积是 1 * n + n * 1 = 2n。另外,4 个顶点处的正方形花圃的边长都是 1,所以它们占地的面积是 4 * 1 = 4。除去这些区域之外的部分的面积是 (n - 2) * (n - 2)

因此,粉玫瑰占地的面积是 pinkArea = 2n + 4 + 4 * (n - 2)

最后,我们计算粉玫瑰占总玫瑰园的百分比,并输出结果。这里我们使用了 static_cast<double>(pinkArea)pinkArea 转换为浮点数,然后除以 totalArea 得到百分比,并乘以 100。我们使用 fixedsetprecision(1) 来保留一位小数,并以百分比形式输出。

这种方法通过计算粉玫瑰占地面积和总面积的比例来得到百分比,以保留一位小数的形式输出结果。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值