من رفتم سربازی اگر محتوای منو دوست داشتید و بدردتون خورد از من حمایت مالی کنید

پاسخ سوال سطح مکعب کوئرا

پاسخ سوال سطح مکعب کوئرا
پاسخ سوال سطح مکعب کوئرا

پاسخ سوال سطح مکعب کوئرا

در این نوشته تمرین “چیهمونی؟” که در وب‌سایت کوئرا موجود است را برای شما کاربران عزیز حل کرده‌ایم.

 

پاسخ سوال سطح مکعب کوئرا

فردا تولد حیدریه! حیدری به اجسامی با حجم دقیقاً علاقه‌ای خاص دارد؛ به همین دلیل دوستانش می‌خواهند جعبه‌ای به شکل مکعب مستطیل با اضلاعی به طول صحیح برای او بسازند که حجمی دقیقاً برابر  دارد. از آن‌جایی که مقوا گران شده، دوستان حیدری به دنبال مکعبی با حجم هستند که مساحت مقوای به کار رفته برای ساخت آن کمینه است. به آن‌ها کمک کنید این کمینه مساحت را پیدا کنند.

ورودی سوال سطح مکعب

ورودی تنها شامل یک عدد  است.

 

خروجی سوال سطح مکعب

در تنها خط خروجی کم‌ترین مساحت مقوای لازم برای ساخت مکعب مورد نظر را چاپ کنید.

 

حل سوال سطح مکعب

#include <iostream>
#include <math.h>
using namespace std;

int main()
{
    int v,v2;
    cin >> v;
    double cube = cbrt(v);;
    int k = floor(cube);
    int b = ceil(cube);
    int aval1,aval2;
    for(b; b<=v; b++)
    {
        if(v%b == 0)
        {
            aval1 = b;
            break;
        }
    }
    
    for(k; k>=1; k--)
    {
        if(v%k == 0)
        {
            aval2 = k;
            break;
        }
    }
    v2 = v/aval2;
    v /= aval1;
    int dovom1, dovom2;
    double squre = sqrt(v);
    k = floor(squre);
    b = ceil(squre);
    for(b; b<=v; b++)
    {
        if(v%b == 0)
        {
            dovom1 = b;
            break;
        }
    }
    
    for(k; k>=1; k--)
    {
        if(v%k == 0)
        {
            dovom2 = k;
            break;
        }
    }
    
    squre = sqrt(v2);
    k = floor(squre);
    b = ceil(squre);
    int dovom3, dovom4;
    
    for(b; b<=v2; b++)
    {
        if(v2%b == 0)
        {
            dovom3 = b;
            break;
        }
    }
    
    for(k; k>=1; k--)
    {
        if(v2%k == 0)
        {
            dovom4 = k;
            break;
        }
    }
    
    
    int sevom1 = v/dovom1;
    int sevom2 = v/dovom2;
    int sevom3 = v2/dovom3;
    int sevom4 = v2/dovom4;
    
    int mini = min((aval1*dovom1*2) + (aval1*sevom1*2) + (dovom1*sevom1*2) , (aval1*dovom2*2) + (aval1*sevom2*2) + (dovom2*sevom2*2));
    int mini2 = min((aval2*dovom3*2) + (aval2*sevom3*2) + (dovom3*sevom3*2) , (aval2*dovom4*2) + (aval2*sevom4*2) + (dovom4*sevom4*2));
    int mini3 = min(mini,mini2);
    cout << mini3;
    
    return 0;
}

منبع سوال‌: وبسایت کوئرا

 

اگر روش حل بهتری برای “تمرین سطح مکعب” دارید برای ما ارسال کنید تا با نام خودتان به اشتراک بگذاریم. اگر سوال خاصی را مدنظر دارید در بخش نظرات برای ما ارسال کنید تا حل آن سوال را در الویت محتوای سایت بگذاریم.

برای امتیاز به این نوشته کلیک کنید!
[کل: 0 میانگین: 0]