โจทย์การบ้าน นักเรียน ม.3
-------------
โรงแรมในฝัน (Hotel)
โรงแรมแคนทารีฮิลล์เป็นโรงแรมขนาดใหญ่ซึ่งมีจํานวนห้องพักไม่จํากัด โดย มีรายละเอียดประเภทห้องพัก
และราคาที่พักดังตารางต่อไปนี้
ประเภทของห้อง จํานวนคนที่พักมากที่สุดต่อห้อง ราคาต่อห้อง(บาท)
ห้องเดี่ยว 1 500
ห้องคู่ 2 800
ห้องกลาง 5 1,500
ห้องพักรวม 15 3,000
งานของคุณ
ให้เขียนโปรแกรมในการคํานวณหาห้องพักให้กับคนที่ต้องการเข้าพักจํานวน n คน โดยให้มีราคารวมของห้องพักต่ําที่สุด
ข้อมูลนําเข้า
มีหนึ่งบรรทัด เป็นจํานวนเต็มบวกที่เป็นค่าของ n โดยที่1 ≤ n ≤ 1,000,000
ข้อมูลส่งออก
มีหนึ่งบรรทัด เป็นจํานวนเต็มบวกที่เป็นราคารวมของห็องพักต่ำที่สุด
ตัวอย่างที่ 1
ข้อมูลนําเข้า
21
ข้อมูลส่งออก
5000
ตัวอย่างที่ 2
ข้อมูลนําเข้า
24
ข้อมูลส่งออก
6000าเข้า
24
ข้อมูลส่งออก
6000
idea (อาจจะไม่ใช่วิธีที่ดีที่สุดนะคราาาาบ)
#include <stdio.h>
#include <conio.h>
void main()
{
int price[4] = {500,800,1500,300};
int num[4] = {1,2,5,15};
int data[1000][4];
int data_price[1000];
data[0][0] =0; data[0][1] =0; data[0][2] =0; data[0][3] =0; data_price[0]=0;
data[1][0] =1; data[1][1] =0; data[1][2] =0; data[1][3] =0; data_price[1]=500;
data[2][0] =0; data[2][1] =2; data[2][2] =0; data[2][3] =0; data_price[2]=800;
data[3][0] =1; data[3][1] =2; data[3][2] =0; data[3][3] =0; data_price[3]=1300;
data[4][0] =0; data[4][1] =0; data[4][2] =4; data[4][3] =0; data_price[4]=1500;
data[5][0] =0; data[5][1] =0; data[5][2] =5; data[5][3] =0; data_price[5]=1500;
data[6][0] =1; data[6][1] =0; data[6][2] =5; data[6][3] =0; data_price[6]=2000;
data[7][0] =0; data[7][1] =2; data[7][2] =5; data[7][3] =0; data_price[7]=2300;
data[8][0] =1; data[8][1] =2; data[8][2] =5; data[8][3] =0; data_price[8]=2800;
data[9][0] =0; data[9][1] =0; data[9][2] =0; data[9][3] =9; data_price[9]=3000;
data[10][0] =0; data[10][1] =0; data[10][2] =0; data[10][3] =10; data_price[10]=3000;
data[11][0] =0; data[11][1] =0; data[11][2] =0; data[11][3] =11; data_price[11]=3000;
data[12][0] =0; data[12][1] =0; data[12][2] =0; data[12][3] =12; data_price[12]=3000;
data[13][0] =0; data[13][1] =0; data[13][2] =0; data[13][3] =13; data_price[13]=3000;
data[14][0] =0; data[14][1] =0; data[14][2] =0; data[14][3] =14; data_price[14]=3000;
data[15][0] =0; data[15][1] =0; data[15][2] =0; data[15][3] =15; data_price[15]=3000;
for(int i=16;i< 100;i++)
{
int min_index= 0;
int min= 2147483647 ;
for(int j=1;j<= i/2;j++)
{
int sum = data_price[j] + data_price[i-j];
if(sum < min)
{
min = sum;
min_index = j;
}
}
data_price = min;
data[0] = data[i-min_index][0]+data[min_index][0];
data[1] = data[i-min_index][1]+data[min_index][1];
data[2] = data[i-min_index][2]+data[min_index][2];
data[3] = data[i-min_index][3]+data[min_index][3 ];
}
for(int i=0;i< 100;i++)
{
printf(" = %d:\t" ,i );
for(int j=0;j< 4;j++)
{
printf("%d\t" ,data[j] );
}
printf(" = %d\n" ,data_price );
}
getch();
}
[ view entry ] ( 1569 views ) | permalink | ( 3.1 / 77 )
<<First <Back | 1 | 2 | 3 | 4 | 5 | Next> Last>>