其他分享
首页 > 其他分享> > 售货员的麻烦

售货员的麻烦

作者:互联网

题目描述

一间冰淇淋商店刚刚开张,外面有2×N个人购买1元的冰淇淋,其中一半人拿着1张2元人民币,另一半人拿一张1元人民币。售货员很粗心,没有准备零钱,要使出售过程中不发生找钱困难,问这2×N个人应该如何排队,请你帮他找出所有方案数量的总和。

输入输出格式

输入格式:

一行,一个整数N(N≤15)。

输出格式:

一行,一个整数,表示方案总数。

输入输出样例

输入样例:
4
输出样例:
14


这一题我A了贼久,希望各位别Ctrl+c再Ctrl+v谢谢
(以下代码仅供参考!!!!)
#include<iostream>
#include<cstdio>
using namespace std;
int n,r;
int box1,box2,box;
int a[10000000],x,ans;
int money,b[1000000]; 
int main()
{
    scanf("%d",&x);
    n=2*x;
    r=x; 
    int box1=n,box2=r;
    for(register int i=1;i<=r;++i) a[i]=i+1;
    while(a[0]==0)
    {
        n=box1,r=box2;
        a[box2]++;
        while(a[r]>n)
        {
            r--,n--;
            a[r]++;
        }
        for(register int j=r+1;j<=box2;++j) a[j]=a[j-1]+1;
        for(register int j=1;j<=x;++j)
        {
            money+=a[j]-a[j-1]-2;
            if(money<0) break;
        }
        if(money>=0) ans++;
        money=0;    
    }
    printf("%d",ans);    
    
    
    return 0;
}

 



标签:int,money,register,样例,麻烦,ans,格式,售货员
来源: https://www.cnblogs.com/liaoshuangqi/p/10695540.html