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

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

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

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

 

 

در مورد سایت کوئرا بیشتر بخوانید…

 

تمرین سطح مکعب کوئرا + سی پلاس پلاس

فردا تولد حیدریه!

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

از آن‌جایی که مقوا گران شده، دوستان حیدری به دنبال مکعبی با حجم  هستند که مساحت مقوای به کار رفته برای ساخت آن کمینه باشد.

به آن‌ها کمک کنید این کمینه مساحت را پیدا کنند.

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

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

 

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

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

 

حل سوال سطح مکعب (به زبان برنامه نویسی سی پلاس پلاس)

#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]