用贪心算法编写程序实现!
main()
{
int
i,a[5],b[4],c[4]
/*
define
the
type
of
the
money*/
a[1]=25
a[2]=10
a[3]=5
a[4]=1
printf("please
input
you
money
(fen):\n")
scanf("%d",&b[0])
for
(i=1i<=4i++)
{
b[i]=b[i-1]%a[i]
/*take
n
25
off
and
money
left*/
c[i]=(b[i-1]-b[i])/a[i]
/*
n
*/
printf("%d
is
%d\n",a[i],c[i])
}
getch()
}
首先声明了3个linklist类型list,p,r.你可以把list想像为一个表,只不过开始是一个空表,list赋值给r,开始for循环,将R的下一个结点指定为P(头结点),然后再把 P指定给R,头结点的下一个结点为LIST,LIST赋值为P,从键盘输入A,如果A>0,则第2个结点的DATA部分为A的值,一直循环下去,结束的条件是输入值A>=0,当WHILE循环结束后P肯定到了最后一个结点,P赋值给R,R为末尾结点,然后用DO WHILE输出 ,输出每一个结点 的DATA,结束条件 是 P到了尾结点 。说白了就是先创建一个空表K-1个结点,然后键盘输入给每一个结点的DATA部分赋值>0,最后把输入的值输出。