解题思路: 在分糖果的时候一定是原来有的 每一轮单独算 一定要注意最后一个数是第一个和自身除以2 而第一个数会在循环中进行计算 为防止覆盖数据 要在循坏外部调整好数据的计算和区分 最后在利用set(集合)的特点进行判断是不是每个人完全一样 具体可看代码!
参考代码:
n=int(input()) list01=list(map(int,input().split())) # 记录糖果数 c=0 # 数组长度 l=len(list01) def count(): ''' 此函数用来进行学生间给糖 即 给以此左边的一半 ''' global l # 用来暂时记录数组最后一个数字 防止覆盖 temp=list01[l-1] # 最后一个数 防止第一个数在计算过程中覆盖原来的 单独计算 list01[l-1] = (list01[l-1]+list01[0])//2 for i in range(l): if i+1 < l-1: # 因为是圆形座位 所以要进行重复的赋值 list01[i]=(list01[i]+list01[i+1])//2 elif i==l-2: # 倒数第二个数字用之前未覆盖的最后一位数进行计算 list01[i]=list01[i]//2+temp//2 check_candynum(list01) def check_candynum(m): ''' 此函数进行数目判断 ''' global c # 集合的长度如果为1 说明只有1个数 全是一样的 if len(set(list01))==1: print(c) else: teacher_reput() def teacher_reput(): ''' 此函数用来表示 老师重新补充的糖果数 ''' for j in range(len(list01)): global c if list01[j] % 2 == 1: list01[j]+=1 c+=1 count() # 进行调用 count()
0.0分
0 人评分
C语言训练-求s=a+aa+aaa+aaaa+aa...a的值 (C语言代码)浏览:1084 |
C语言程序设计教程(第三版)课后习题6.1 (C语言代码)浏览:481 |
C语言程序设计教程(第三版)课后习题7.4 (C语言代码)浏览:643 |
【密码】 (C语言代码)浏览:350 |
C语言程序设计教程(第三版)课后习题8.2 (C语言代码)浏览:5275 |
Wu-求圆的面积 (C++代码)浏览:1994 |
用筛法求之N内的素数。 (C语言代码)浏览:890 |
DNA (C语言代码)浏览:564 |
1642题解浏览:784 |
C语言程序设计教程(第三版)课后习题1.5 (C语言代码)浏览:566 |