N钱买N鸡

Description

公鸡5元一只,母3元一只,小鸡a只1元,现有N元钱,要买N鸡,共有几种方案。

如a=3,N=100

则有:
公鸡数 母鸡数 小鸡数

0 25 75

4 18 78

8 11 81

12 4 84

故共4种方案。输出4即可。

Input

一行,a(表示小鸡a元一只) N表示N元钱共买N只鸡

Output

一行,方案数,若无方案则输出0

Sample Input 1

3 100

Sample Output 1

4

Hint

0<a<=10,100<=N<=10000

利用《中学生可以这样学Python》教材解法仍有一个测试点(测试点8)会超时,请读者继续探索更优化算法。

Source

中学生可以这样学Python

python解法

方法一:

a,N=map(int,input().split())
asum=0
for i in range(N//5+1):
    for j in range(N//3+1):
        k=N-i-j
        if 5*i+3*j+k/a==N and i+j+k==N:
            asum=asum+1
            print(i,j,k)
print(asum)

方法二:

a,N=map(int,input().split())
asum=0
for i in range(0,N+1,5):
    for j in range(0,N+1-i,3):
        k=N-i-j
        if i//5+j//3+k*a==N and i+j+k==N :
            asum=asum+1
print(asum)

方法三:

a,N=map(int,input().split())
asum1=0
for i in range(N//5+1):
    j=((a-1)*N-(5*a-1)*i)//(3*a-1)
    k=N-i-j
    #print(i,j,k)
    if j>=0 and k>=0 and ((a-1)*N-(5*a-1)*i)%(3*a-1)==0 and k%a==0:
        asum1=asum1+1
        #print(i,j,k)
print(asum1)
Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐