给一个人发工资,设计一个方案,使得其人民币张数最少,面额有100元多少张,50元多少张,20元多少张,10元多少张,5元多少张,1元多少张,5角多少张,2角多少张,1角多少张?在一个文本框中输入工资金额,然后自动算这些金额各自有多少张,我自己设计了一个算法,但是还是有点小问题,百思不得其解,可能陷入死胡同了,哪位大侠有好的算法,最好能有程序的实现代码,感激不尽,感恩戴德啊,大侠们来拯救我吧,谢谢啊!。。谢谢啊求教求教...!!!!!!!

解决方案 »

  1.   

    int num=trunc(工资*100);
    一百的张数
       i:=num div 10000   item:= num  mod 10000;
    50的张数  
       j := item div 5000
      item:=item mod 5000;
    20的张数 
       k :=item div 2000
      item:= item  mod 2000;
    以其类推 当item<1 退出   
      

  2.   

    公式:工资=面额*n (先判断工资是否大于某个面额,再选择除以那一种面额)张数(n)=工资 div 面额 的商
    余数(工资 mod 面额)为下一个面额的被除数(工资),直到余数为0或者<1,就结束自己实现去吧