// 如下程序 可以计算
不找钱时 应缴的 最少张数:注意到 1, 7, 7^2, 7^3,后者是前者的倍数,所以只需要尽量取大票就可以了。
#include <stdio.h>
void main()
{
int
i,j,k,m,s;
i=10015/343;
j=10015%343/49;
k=10015%49/7;
m=10015%7;
s=i+j+k+m;
printf("7^3
7^2
7
1\n");
printf("%5d%5d%5d%4d\n",i,j,k,m);
//
29 1 2 5
printf(" %d\n",s);
//这是不找钱的情况下最少的张数。
s=37
}
//但是很显然
29 1 2 5
-->
29
1 3(多交一张7元的)
-2(找两元)
-- s= 29+1+3+|-2|=35 要更少。
//所以问题不是那么简单,等待达人给出算法
[
本帖最后由 kwxx 于 2011-4-23 20:18 编辑 ]