君君最近心情一直不好,他何以解忧唯有shopping!君君觉得如果能买10件物品他就能愉快了,但是君君可能没有那么多钱。现在给定君君所能支付的最大金额和10件君君想买的物品的价格(已经按照价格进行了排序),请你帮他判断,如果君君的钱足够买下所有物品,请输出OK和剩余的金额。如果君君的钱不够买下所有的物品,请输出NO,并输出君君最多能买几件商品和剩余的金额。
#include
int main()
{
int i,n,s=0,t=0,j=0;
int a[10];
scanf("%d",&n);
for(i=0;i<10;i++)
{
scanf("%d",&a[i]);
s=s+a[i];
}
if(s<=n)
{
printf("Ok ");
printf("%d",n-s);
}
else
{
for(i=0;i<10;i++)
{
t=t+a[i];
if(t<=n)
{
j++;
printf("No ");
printf("%d %d",j,n-t);
}
}
}
return 0;
}
Sample Input
3000
30 58 78 80 100 102 108 2000 2010 2060
Sample Output
NO 8 444
你最底下那个for循环错了
for (i = 0; i < 10; ++i){
t += a[i];
if (t >= n){
printf("NO %d %d",i+1,t-a[i]);
break;
}
}
}
for (i = 0; i < 10; ++i){
t += a[i];
if (t > n){
printf("NO %d %d\n",i,t-a[i]);
break;
}
}