11

مسألة برمجية للتدريب !

  • Rashadoo

لديك عدد n من flash drives ولديك ملف حجمه size , قم بكتابة برنامج يقرأ عدد الفلاشات التي تملكها , ثم يقرأ حجم الملف , ثم يقرأ حجم كل فلاشة , ويجد اقل عدد ممكن من الفلاشات التي اذا دمجتها اتسعت للملف 0.o

مثال :

ادخل عدد فلاشات 3

ادخل حجم الملف : 6

ادخل حجم الفلاشة الاولى : 2

ادخل حجم الفلاشة الثانية : 3

ادخل حجم الفلاشة الثالثة : 2

الخرج سيكون 3


مثال ثاني :

ادخل عدد فلاشات 4

ادخل حجم الملف : 10

ادخل حجم الفلاشة الاولى : 8

ادخل حجم الفلاشة الثانية : 2

ادخل حجم الفلاشة الثالثة : 2

ادخل حجم الفلاشة الرابعة: 3

الخرج سيكون 2


مثال أخير :

ادخل عدد الفلاشات 2

حجم الملف : 5

الاولى : 1

الثانية : 5

الخرج : 1


على اعتبار انه دائما الفلاشات بتقوم بإتساع الملف


التعليق السابق

بسيطة سطرين.

#include <iostream>
#include <algorithm>
#include <vector>

using namespace std;

int main() {
    int n_fd=0, s_f=0, n_fd_n=0;
    vector<int> sizes_drivers;

    cout << "Enter flash drivers number: ";
    cin >> n_fd;
    cout << "Enter file size: ";
    cin >> s_f;
    for(int i=0,x=0;i++<n_fd;){
        cout << "Enter size for flash driver number[" << i << "]: ";
        cin >> x;
        sizes_drivers.push_back(x);
    }

    sort(sizes_drivers.begin(),sizes_drivers.end());

    for(int i=0,x=0;i++<n_fd;){
        x+=sizes_drivers[i];
        if(x>=s_f){
            n_fd_n = i+1;
            break;
        }
    }
    cout << "You need " << n_fd_n << " flash drivers." << endl;

    return 0;
}