لديك عدد 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;
}
التعليقات