分苹果问题

问题:
现有1000个苹果,10个盒子,问各个盒子内应该分别放入多少个苹果,才能使得用户要买任意1至1000之间的一个苹果数,都可以给他(卖的时候是整个盒子卖,不能拆盒子的包装)。

解决方法:
None.gif #define   APPLENUM   1000   
None.gif   #define   BOXNUM       10   
None.gif    
None.gif   void   main()   
ExpandedBlockStart.gif   {   
InBlock.gif          int   arBox[BOXNUM];   
InBlock.gif          int   m   =   0;   
InBlock.gif          int   nTotalAppleNum   =   0;   
InBlock.gif    
InBlock.gif          arBox[0]   =   1;   
InBlock.gif          arBox[1]   =   2   
InBlock.gif          nTotalAppleNum   =   arBox[0];   
InBlock.gif    
InBlock.gif          for(m   =   2   ;   m   <   BOXNUM   ;   m++)   
ExpandedSubBlockStart.gif          {   
InBlock.gif                nTotalAppleNum   +=   arBox[m-1];   
InBlock.gif            
InBlock.gif                if((nTotalAppleNum   *   2)   >   APPLENUM)   
InBlock.gif                        arBox[m]   =   APPLENUM   -   nTotalAppleNum;   
InBlock.gif                else   
InBlock.gif                        arBox[m]   =   nTotalAppleNum   +   1;   
ExpandedSubBlockEnd.gif          }   
InBlock.gif    
InBlock.gif        //相关处理   
ExpandedBlockEnd.gif
  }   
None.gif
   
  上面这个程序的思想是基于这样的:数组的前m个元素能够处理前m个元素相加后的结果nTotalAppleNum(当成是总的苹果数)放在m个盒子里使得用户买任意1个到nTotalAppleNum个苹果都可以给买主还不用拆开盒子!!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值