不是VIP会员,不能显示答案

题目解答

题目:
【旅游食品】(3+3+3+3=12分)
元旦到了,红旗小学要组织小学生外出旅游。炳炳妈给了炳炳s元钱,为了保证营养,她要求炳炳在n种食品(牛奶、苹果、矿泉水、蜜饯、鸡蛋、面包等)中必须每样买一份来充当中餐和点心(如果n种食品的价格分别用a[1]、a[2]、……a[n]保存,则肯定有s>a[1]+a[2]+a[3]+……+a[n]),剩余的钱由炳炳自由花费。
炳炳是一位很热心的学生,他想用剩余的钱全部用来购买这些食品中价格最便宜的那种,然后他打算把这些食品分给其他同学吃。
比如,现在妈妈给炳炳20元钱,妈妈要炳炳在矿泉水、蜜饯、牛奶、鸡蛋、苹果、面包(价格分别为1、1、3、2、1、4元)每样都必须购买一份,这样炳炳剩余的钱就是20-12=8元,炳炳就会把这剩余的8元全部用来购买矿泉水、苹果或者蜜饯(每样价格都是最低的1元),共可购买8份最便宜的食品,这样,加上炳炳原来购买的打算自己当作中餐和点心的6份食品,他就拥有了共14份食品。
下列程序中首先输入炳炳充当中餐和点心的食品数量和妈妈给炳炳的总款(用n和s表示,s必定小于100),然后会输入每种食品的价格,最后会输出炳炳手中拥有的所有食品的总的份数。对于前面的例子,输入和输出的样例如下:
【样例输入】
6 20
1 1 3 2 1 4
【样例输出】
14
请完善下列程序:
program test05;
var
 n,i,j,tot,min,s:integer;
 a:array[1..50] of integer;
begin
 readln(n,s);
 for i:=1 to n do begin read(a[i]);s:=s- a[i] ;end;
 min:=32720;
 for i:=1 to n do if min>a[i] then min:=  a[i]   ;
 tot:=n;
 while min<=s do
 begin
  tot:= tot+1 ;s:=s-min;
 end;
 writeln( tot );
end.
考点:
分析:
解答:
评论:
老师: