有点像贪心,但又有点不像,不过肯定是个背包个问题,我用的方法是求出他所花费的最大钱,然后就可以求出最少余额。
#include<stdio.h>
int main()
{
int m;
while(scanf("%d",&m)!=EOF)
while(m--)
{
int n,a,b,c,max,count;
scanf("%d",&n);
a=n/150;
b=n/200;
c=n/350;
max=-1;
for(int i=0; i<=a; i++)
for(int j=0; j<=b; j++)
for(int k=0; k<=c; k++)
{
count=i*150+j*200+k*350;
if(max<=count&&count<=n)
max=count;
}
printf("%d\n",n-max);
}
return 0;
}