牵着老婆满街逛

严以律己,宽以待人. 三思而后行.
GMail/GTalk: yanglinbo#google.com;
MSN/Email: tx7do#yahoo.com.cn;
QQ: 3 0 3 3 9 6 9 2 0 .

分苹果问题

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

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


方法来源:http://topic.csdn.net/t/20030225/18/1465645.html

posted on 2008-06-26 00:39 杨粼波 阅读(469) 评论(0)  编辑 收藏 引用


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理