qwert1596 2023-07-29 15:00 采纳率: 75%
浏览 0
已结题

请问我哪里错了求答案及注解

照片摆放
描述
每张图片都是一个正方形,尺寸为 1 个单位乘 1 个单位。
例如,小星现在有 12 张照片
所以这个方的矩形周长,14 个单位,尺寸为 3×4。
请你帮小星求出 n(1<=n<=65000) 张照片,最小的周长是多少,当然还要求出矩形的尺寸。
输入描述
输入多行每一行都表示 照片的个数 n
当 n=0 的时候停止输入

输出描述
输出多行,每一行三个数,分别表示周长、矩形的宽和长,(宽<=长)

样例输入 1

100
15
195
0
样例输出 1

40 10 10
16 3 5
56 13 15

#include <iostream>
#include <cmath>

using namespace std;

int main() {
    int n;
    while (cin >> n && n != 0) {
        int square_root = sqrt(n);
        int width, height, perimeter;

        if (square_root * square_root == n) {
            width = height = square_root;
            perimeter = 2 * (width + height);
        } else {
            width = ceil(sqrt(n));
            height = floor(sqrt(n));
            perimeter = 2 * (width + height);
        }

        cout << perimeter << " " << width << " " << height << endl;
    }

    return 0;
}


  • 写回答

2条回答 默认 最新

  • 关注

    照片的个数其实就是矩形的面积,面积一定时,长、宽的差越小,周长越小。

    #include<bits/stdc++.h>
    using namespace std;
    int n;
    int main(){
        cin >> n;
        while(n){
            int kuan, chang, zhou;
            for(int i = sqrt(n); i >= 1; i--){
                if(n % i == 0){
                    kuan = min(i, n / i);
                    chang = n / kuan;
                    break;
                }
            }
            cout << (chang + kuan) * 2 << " " << kuan << " " << chang << endl;
            cin >> n;
        }
        return 0;             
    }
     
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 8月6日
  • 已采纳回答 7月29日
  • 创建了问题 7月29日

悬赏问题

  • ¥15 fluent里模拟降膜反应的UDF编写
  • ¥15 MYSQL 多表拼接link
  • ¥15 关于某款2.13寸墨水屏的问题
  • ¥15 obsidian的中文层级自动编号
  • ¥15 同一个网口一个电脑连接有网,另一个电脑连接没网
  • ¥15 神经网络模型一直不能上GPU
  • ¥15 pyqt怎么把滑块和输入框相互绑定,求解决!
  • ¥20 wpf datagrid单元闪烁效果失灵
  • ¥15 券商软件上市公司信息获取问题
  • ¥100 ensp启动设备蓝屏,代码clock_watchdog_timeout