鱼C论坛

 找回密码
 立即注册
楼主: 新手·ing

[技术交流] Python:每日一题 16(答题领鱼币)

  [复制链接]
发表于 2019-3-3 19:22:00 | 显示全部楼层
本帖最后由 hjx123hjx 于 2019-3-3 20:08 编辑

def totalpeach(n, x):
   
    while True:
        peach = x
        for i in range(n):
            peach = 1 + peach * 5 / 4
            if (peach - 1) % 5 != 0:
                break
        else:
            break
        x += 4
    return peach
   
print(totalpeach(5,4))
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-3-4 17:00:34 | 显示全部楼层
  1. for num in range(100000):
  2.     ori = num
  3.     for i in range(5):
  4.         if (num - 1) / 5 % 1 == 0:
  5.             num = (num - 1) * 4 / 5
  6.         else:
  7.             break

  8.         if i == 4:
  9.             print(ori)

  10.             
复制代码


最少是3121个,不是这个答案的,都是题目理解有问题
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-3-20 15:58:12 | 显示全部楼层
def fentao(n):
    if n % 5 == 1:
        n=(n-1)//5*4
        return n
    else:
        return -2
ini=6
n=ini
k=0
while(True):
   
    num=fentao(n)
    if num != -2:
        k+=1
        n=num
    else:
        ini+=1
        n=ini
        k=0

    if k==5:
        break

print(ini)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-3-20 21:52:15 From FishC Mobile | 显示全部楼层
最后只有一只猴子时,算上还要扔的那一个桃子,不应该至少有2个吗?所以说当只有两只猴子时至少有5个桃子啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-3-20 22:21:46 | 显示全部楼层
设第五只猴子拿走了x个桃子,那么最初的桃子应该是:
(((((5x+1)*5+1)*5+1)*5+1)*5+1)=3125x+781
x应该是大于等于1的整数(如果最后一只猴子不是空手走的话)
那么 x取1时,最少有3906个桃子(这帮猴子可真聪明!).
如果最后一只猴子手里只有一个桃子还给扔了的话(太傻了!)那就是781个桃子。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-3-20 23:28:59 | 显示全部楼层
def fix(n):
    if n==1:
        return 1
    else:
        return fix(n-1)*5+1
print ('原来最少有%d个桃子'% fix(5))

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-8-13 15:23:21 | 显示全部楼层
  1. def answer1():
  2.     left = 0                                                  #假设最后一天扔掉后剩余0个桃
  3.     count = 5                                                 #计数器初始化
  4.     a = left                                                  # 分配后(after)桃子数
  5.     b = a * 1.25 + 1                                          # 分配前(before)桃子数
  6.     while count > 0:                                          #控制分配次数
  7.         print("第%d天分前桃子数为%d个,分后桃子数为%d个" % (count, b, a))
  8.         if b % 1 == 0:                                        #如果某天桃子数为整数则计算前一天桃子数
  9.             a = b
  10.             b = b * 1.25 + 1
  11.             count -= 1                                        #计数器减1
  12.         else:
  13.             left += 1                                         #当出现非整数时剩余桃子递推加1,初始化计数器
  14.             a = left
  15.             b = a * 1.25 + 1
  16.             count = 5
  17.             print("-------------------------------------------")         #分割线
  18.     print("初始桃子数为%d个,最后剩余桃子为%d个" % (a, left))

  19. if __name__ == '__main__':
  20.     answer1()
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-8-29 11:53:16 | 显示全部楼层
哈哈
  1. def f(n):
  2.           if n == 1:
  3.                     return 6
  4.           else:
  5.                     return f(n-1)*5 +1
  6. if __name__ =='__main__':
  7.        result = f(5)
  8.        print('一共有%d个桃子'%result)
  9.          
  10.          
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-9-3 22:07:25 | 显示全部楼层
1020 0 1276.0
1020 1 1596.0
1020 2 1996.0
1020 3 2496.0
1020 4 3121.0
最小是3121.。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-9-4 04:51:26 | 显示全部楼层
  1. num=1
  2. flag=True
  3. n=int(input('输入猴子数量:'))
  4. while flag:
  5.     t=n
  6.     sum=1+n*num #最后那只猴子所需分的数量
  7.    # print('num是:%d'%num)
  8.     while t>1:
  9.         sum=int(n*sum/(n-1)+1)
  10.         t-=1
  11.        # print('第{}只猴时的sum是{}'.format(t,sum))
  12.         if (sum-1)%n != 0:
  13.             num +=1
  14.            # print('进来:{}'.format(sum))
  15.             break
  16.     if (sum-1)%n==0:
  17.         flag=False
  18. print('原有桃子%d'%sum)
复制代码


想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-9-11 19:29:13 | 显示全部楼层
j = 4
for i in range(1,6):
    x = j
    x = x*1.25 + 1
    if type(x) is float:
        j += 4
print(x)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-11-26 16:57:51 | 显示全部楼层
i = 0
L = []
while True:
    th5 = i   #i为第五只猴子拿走的数量。理论上有无数种解。只要循环为无穷。这里我只取能满足要求的最小数
    L.append(5*i+1)
    for k in range(4):
        T = (5/4)*L[k]+1
        if((T-1)%5==0):
            L.append(T)
        else:
            L=[]
            break
    if L!=[]:
        print("Totall peach are %d" % (L[4]))
        break
    else:
        i +=1
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-12-1 21:36:28 | 显示全部楼层
b =[]
for i in range(10000):
    a = i
    for each in range(5):
        if (i-1)%5 ==0:
            i = (i-1)/5*4
        else:
            a = 0
    if a !=0 :
        b.append(a)
print(b[0])            
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-1 10:42:36 | 显示全部楼层
  1. origin = 6
  2. while True:
  3.     rest = origin
  4.     for i in range(5):
  5.         if (rest-1) % 5:
  6.             break
  7.         rest = (rest-1)/5*4
  8.     else:
  9.         print(f'海滩上原来最少有{origin}个桃子.\n海滩上剩余{int(rest)}个桃子.')
  10.         break
  11.     origin += 5
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-11 08:42:50 | 显示全部楼层
看看
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-3-15 10:11:09 | 显示全部楼层
#第5天分之前至少要有6个,才能保证平均分成5堆,每堆有一个,且剩余多一个扔掉。
a=1
for j in range(1,6):
    a=a*5+1
    print('第%d天分之前剩余%-4d个桃子'%(6-j,a))
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-27 20:53:52 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-4-13 00:31:30 | 显示全部楼层
答案
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-5-16 09:06:33 | 显示全部楼层
  1. for n1 in range(1,1000):
  2.     n2 = (5*n1 + 1) / 4
  3.     if n2 % 1 == 0:
  4.         n3 = (5*n2 + 1) / 4
  5.         if n3 % 1 == 0:
  6.             n4 = (5*n3 + 1) / 4
  7.             if n4 % 1 == 0:
  8.                 n5 = (5*n4 + 1) / 4
  9.                 if n5 % 1 == 0:
  10.                     print('海滩上原来最少有%d个桃子'%(5*n5 + 1))
  11.                     break  
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-6-2 10:11:12 | 显示全部楼层
sum = 1
count = 5
for i in range(1,6):
    sum = (sum*5)+1
    print("第%d只猴子桃子总数为:%d"%(count,sum))
    count = count - 1


第5只猴子桃子总数为:6
第4只猴子桃子总数为:31
第3只猴子桃子总数为:156
第2只猴子桃子总数为:781
第1只猴子桃子总数为:3906
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-28 00:42

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表