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)