有2n个人,n个人手持5元钱,n个人手持10元钱排队买东西。东西的价格为5元。老板没有零钱。在这种情况下,2n个人共有多少种排队方式,不会出现找不开钱的情况。最好用C\C++或C#实现,Java也行

解决方案 »

  1.   

    只要满足这样的情况,就不会出现没零钱的情况,
    那就是,如果第N个人,手持10元,那么前面N-1个人中,要满足手持5元的人数要 >(n-1)/2
    如果第N个人,手持5元,那么前面N-1个人中,只要满足手持5元的人数 >= (n-1)/2就OK了,
      

  2.   

    这个不难吧,做个counter统计下现在老板手中的5元个数。
    如果什么时候变为-1,就说明出现没零钱找的情况了