• 牛客网语法篇练习循环控制(一)


    1.2023年就要来到了,KiKi要对他的n位好朋友说n遍”Happy new year!Good luck!”的祝福语。

    1. n = int(input())
    2. for i in range(n):
    3. print('Happy new year!Good luck!')

    2.任意输入一个正整数N,统计1~N之间奇数的个数和偶数的个数,并输出。

    1. num = int(input().strip())
    2. m,n = 0,0
    3. for i in range(1,num+1):
    4. if i%2 == 1:
    5. m += 1
    6. else:
    7. n += 1
    8. print(m,n)

    3.KiKi知道了质数(只能被1和他自身整除的数),他想知道所有三位整数中,有多少个质数。

    1. import math
    2. n = 0
    3. for i in range(100,1000):
    4. for j in range(2, int(math.sqrt(i))+1):
    5. if i%j==0:
    6. n += 1
    7. break
    8. print(900-n)

    4.输出九九乘法表

    1. for i in range(9):
    2. for j in range(i + 1):
    3. print('{}*{}={:2d} '.format(j + 1, i + 1, (i + 1) * (j + 1)), end='')
    4. print()

    5.牛牛开始学习数列啦,现在他想知道1-2+3-4...+n的值。

    1. n = int(input())
    2. if n % 2 == 0:
    3. answer = (-1) * (n/2)
    4. else:
    5. answer = (1-n)/2 + n
    6. print(int(answer))

    6.这次牛牛又换了个数列,他想计算:1+1/2+1/3+…+1/N的值。(保留6位小数)

    1. n=int(input())
    2. a=0
    3. for i in range(1,n+1):
    4. a=a+1/i
    5. print('{:6f}'.format(a))

    7.牛牛准备继续进阶,计算更难的数列
    输入一个整数n,计算 1+1/(1-3)+1/(1-3+5)+...+1/(1-3+5-...((-1)^(n-1))*(2n-1))的。

    1. a = int(input())
    2. s = 0
    3. for i in range(1, a+1):
    4. s += 1 / (pow(-1, i+1) * i )
    5. print('%.3f' % s)

    8.帮助牛牛计算 1+(1+2)+(1+2+3)+...+(1+2+3+...+n。。

    1. a = int(input())
    2. b = 0
    3. for i in range(1, a+1):
    4. for j in range(1, i+1):
    5. b += j
    6. print('%d' % b)

    9.求一个整数的所有数位之和。

    1. a = input()
    2. b = 0
    3. for i in range(len(a)):
    4. b += int(a[i])
    5. print(b)

    10.有一个数字魔法,给你一个正整数n,如果n为偶数,就将他变为n/2, 如果n为奇数,就将他变为乘3加1;不断重复这样的运算,经过有限步之后,一定可以得到1;牛牛为了验证这个魔法,决定用一个整数来计算几步能变成1。

    1. n=int(input())
    2. count=0
    3. while n!=1:
    4. if n%2==0:
    5. n=n/2
    6. count+=1
    7. else:
    8. n=n*3+1
    9. count+=1
    10. print(count)

    11.KiKi想知道1~2019中有多少个包含数字9的数。包含数字的数是指有某一位是“9”的数,例如“2019”、“199”等。

    1. count = 0
    2. for i in range(1, 2020):
    3. if '9' in str(i):
    4. count += 1
    5. print(count)

    12.小乐乐的班主任想统计一下班级里一共有多少人需要被请家长,三个成绩(语文,数学,外语)平均分低于60的将被请家长,小乐乐想编程帮助班主任算一下有多少同学被叫家长。

    1. n = int(input())
    2. count = 0
    3. matrix = []
    4. for i in range(n):
    5. matrix.append(list(map(int, input().split())))
    6. if (matrix[i][0]+matrix[i][1]+matrix[i][2])/3 < 60:
    7. count += 1
    8. print(count)

    13.春天是鲜花的季节,水仙花就是其中最迷人的代表,数学上有个水仙花数,他是这样定义的: “水仙花数”是指一个三位数,它的各位数字的立方和等于其本身,比如:153=1^3+5^3+3^3。 现在要求输出所有在m和n范围内的水仙花数。

    1. while True:
    2. try:
    3. m,n=map(int,input().split())
    4. res=[]
    5. for i in range(m,n+1):
    6. a=int(i/100)
    7. b=int((i-a*100)/10)
    8. c=int((i-a*100-b*10))
    9. if a**3+ b**3+c**3==i:
    10. res.append(i)
    11. if len(res)>0:
    12. print(' '.join([str(i) for i in res]))
    13. elif len(res)==0:
    14. print('no')
    15. except:
    16. break

    14.变种水仙花数 - Lily Number:把任意的数字,从中间拆分成两个数字,比如1461 可以拆分成(1和461),(14和61),(146和1),如所有拆分后的乘积之和等于自身,则是一个Lily Number。
    例如:655 = 6 * 55 + 65 * 5    1461 = 1*461 + 14*61 + 146*1
    求出 5位数中的所有 Lily Number。

    1. for i in range(10000,100000):
    2. if (i//10000)*(i%10000)+(i//1000)*(i%1000)+(i//100)*(i%100)+(i//10)*(i%10)==i:
    3. print(i,end = ' ')

    15.公务员面试现场打分。有7位考官,从键盘输入若干组成绩,每组7个分数(百分制),去掉一个最高分和一个最低分,输出每组的平均成绩。

    1. while True:
    2. try:
    3. a=input().split()
    4. max=0
    5. min=100
    6. sum=0
    7. for i in range(7):
    8. a[i]=int(a[i])
    9. if a[i]>max:
    10. max=a[i]
    11. if a[i]<min:
    12. min=a[i]
    13. sum+=a[i]
    14. print('%.2f'%((sum-max-min)/5))
    15. except:
    16. break

    16.将一个四位数,反向输出。

    1. a = input()
    2. print(a[::-1])

    17.小乐乐在课上学习了二进制八进制与十六进制后,对进制转换产生了浓厚的兴趣。因为他的幸运数字是6,所以他想知道一个数表示为六进制后的结果。请你帮助他解决这个问题。

    1. n = int(input())
    2. list1 =[]
    3. while(n//6>0):
    4. list1.append(n%6)
    5. n = n//6
    6. list1.append(n)
    7. list1.reverse()
    8. for i in list1:
    9. print(i,end="")

    18.国王将金币作为工资,发放给忠诚的骑士。第一天,骑士收到一枚金币;之后两天(第二天和第三天),每天收到两枚金币;之后三天(第四、五、六天),每天收到三枚金币;之后四天(第七、八、九、十天),每天收到四枚金币……;这种工资发放模式会一直这样延续下去:当连续N天每天收到N枚金币后,骑士会在之后的连续N+1天里,每天收到N+1枚金币。
    请计算在前K天里,骑士一共获得多少金币。

    1. k=int(input())
    2. n=1
    3. while k>n*(n+1)/2:
    4. n+=1
    5. coin=sum([x**2 for x in range(1,n+1)])-(n*(n+1)/2-k)*n
    6. print(int(coin))

     19.今天牛牛学到了回文串,他想在数字里面找回文,即回文数,回文数是正着读与倒着读都一样的数,比如1221,343是回文数,433不是回文数。请输出不超过n的回文数。

    1. a = int(input())
    2. for i in range(1,a+1):
    3. n = str(i)
    4. if n == n[::-1]:
    5. print(n)

    20.KiKi学习循环,BoBo老师给他出一系列打印图案的练习,该任务是打印用“*”组成的线段图案。

    1. while True:
    2. try:
    3. x = int(input())
    4. print('*'*x)
    5. except:
    6. break

    21.KiKi学习循环,BoBo老师给他出一系列打印图案练习,该任务是打印用“*”组成的正方形图案。

    1. while True:
    2. try:
    3. n = int(input())
    4. for i in range(1,n+1):
    5. print('* '*n)
    6. except:
    7. break

    22.KiKi学习循环,BoBo老师给他出打印图案的练习,该任务是打印用“*”组成的直角三角形图案。

    1. while True:
    2. try:
    3. a=int(input())
    4. for i in range(1,a+1):
    5. print('* '*i)
    6. except:
    7. break

    23.KiKi学习循环,BoBo老师给他出打印图案练习,该任务是打印用“*”组成翻转直角三角形图案。

    1. while True:
    2. try:
    3. a=int(input())
    4. for i in range(a,0,-1):
    5. print('* '*i)
    6. i=i-1
    7. except:
    8. break

    24.KiKi学习循环,BoBo老师给他出打印图案练习,任务是打印用“*”组成带空格直角三角形图案。

    1. while True:
    2. try:
    3. n=int(input())
    4. for i in range(1,n+1):
    5. print(" "*(n-i)+"* "*i)
    6. except:
    7. break

    25.KiKi学习循环,BoBo老师给他出打印图案的练习,该任务是打印用“*”组成的金字塔图案。

    1. while(True):
    2. try:
    3. num = int(input())
    4. for i in range(1,num+1):
    5. print(' '*(num - i) +'* '*i)
    6. except:
    7. break

    26.KiKi学习循环,BoBo老师给他出打印图案的练习,该任务是打印用“*”组成的翻转金字塔图案。

    1. while True:
    2. try:
    3. a = int(input())
    4. for i in range(1,a+1):
    5. print(' '*(i-1) + '* '*(a-i+1) )
    6. except:
    7. break

    27.KiKi学习循环,BoBo老师给他出打印图案的练习,该任务是打印用“*”组成的菱形图案。

    1. while True:
    2. try:
    3. n = int(input())
    4. for i in range(0, n + 1):
    5. print(' ' * (n - i) + '* ' * (i + 1))
    6. for j in range(1, n + 1):
    7. print(' ' * j + '* ' * (n + 1 - j))
    8. except:
    9. break

    28.KiKi学习循环,BoBo老师给他出打印图案的练习,该任务是打印用“*”组成的K形图案。

    1. while True:
    2. try:
    3. n = int(input())
    4. for i in range(0, n + 1):
    5. print('* ' * (n - i + 1)+' '*i)
    6. for i in range(1, n + 1):
    7. print('* ' * ( i + 1)+' '*(n-i+1))
    8. except:
    9. break

    29.KiKi学习循环,BoBo老师给他出打印图案的练习,该任务是打印用“*”组成的箭形图案。

    1. while True:
    2. try:
    3. n = int(input())
    4. for i in range(n+1):
    5. print(' ' * (n-i) + '*' * (i+1))
    6. for j in range(n):
    7. print(' ' * (j+1) + '*' * (n-j))
    8. except:
    9. break

    30.KiKi学习循环,BoBo老师给他出打印图案的练习,该任务是打印用“*”组成的反斜线形图案。

    1. while True:
    2. try:
    3. n = int(input())
    4. l=[]
    5. for i in range(n):
    6. c=[]
    7. c.append((' '*i+'*'+' '*(n-i-1)))
    8. l.append(c)
    9. for t in range(n):
    10. print(*l[t])
    11. except:
    12. break

    31.KiKi学习循环,BoBo老师给他出打印图案的练习,该任务是打印用“*”组成的正斜线形图案。

    1. while True:
    2. try:
    3. n = int(input())
    4. for i in range(0 , n):
    5. print(' ' * (n - i - 1) + '*' + ' ' * i)
    6. except:
    7. break

    32.KiKi学习循环,BoBo老师给他出打印图案的练习,该任务是打印用“*”组成的X形图案。

    1. while True:
    2. try:
    3. a = int(input())
    4. if a % 2 != 0:
    5. for i in range(a//2):
    6. print(' '*i+'*'+' '*(a-2*i-2)+'*'+' '*i)
    7. if i+1 ==(a//2):
    8. print(' '*(i+1)+'*'+' '*(i+1)+' '*(i+1))
    9. for j in range(1,a//2+1):
    10. print(' '*(a//2-j)+'*'+' '*(2*j-1)+'*'+' '*(a//2-j))
    11. else:
    12. for n in range(a//2):
    13. print(' '*n+'*'+' '*(2*(a//2-n-1))+'*'+' '*n)
    14. for k in range(a//2):
    15. print(' '*(a//2-k-1)+'*'+' '*(2*k)+'*'+' '*(a//2-k-1))
    16. except:
    17. break

    33.KiKi学习循环,BoBo老师给他出打印图案练习,该任务是打印用“*”组成的“空心”正方形图案。

    1. while True:
    2. try:
    3. n = int(input())
    4. for i in range(n):
    5. if i == 0 or i == n-1:
    6. print('* '*n)
    7. else:
    8. print('* '+' '*(n-2)+'* ')
    9. except:
    10. break

    34.KiKi学习循环,BoBo老师给他出打印图案练习,该任务是打印用“*”组成的“空心”三角形图案。

    1. while True:
    2. try:
    3. n = int(input())
    4. print('* ' + ' '*(n - 1))
    5. for i in range(1, n - 1):
    6. print('* ' + ' '*(i - 1) + '* ' + ' '*(n - i - 1))
    7. print('* ' * n)
    8. except:
    9. break

    35.KiKi学习循环,BoBo老师给他出打印图案练习,该任务是打印用数字组成的数字三角形图案。

    1. while True:
    2. try:
    3. x=int(input())
    4. zs=''
    5. for i in range(1,x+1):
    6. zs=zs+str(i)+" "
    7. print(zs)
    8. except:
    9. break

    36.今天是圣诞节,牛牛要打印一个漂亮的圣诞树送给想象中的女朋友,请你帮助他实现梦想。

    1. while True:
    2. try:
    3. n = int(input())
    4. for i in range(1,n+1):
    5. m = '*' + ' *' * (i - 1)
    6. print(m.center(6*n-1))
    7. m = '* *' + ' * *' * (i - 1)
    8. print(m.center(6*n-1))
    9. m = '* * *' + ' * * *' * (i - 1)
    10. print(m.center(6*n-1))
    11. for j in range(n):
    12. print('*'.center(6*n-1))
    13. except:
    14. break

    37.今天是圣诞节,牛牛要打印一个漂亮的圣诞树送给想象中的女朋友,请你帮助他实现梦想。

    1. h=int(input())
    2. l=["*","* *","* * *"]
    3. for i in range(h-1):
    4. n=len(l)
    5. for j in range(n):
    6. l.append(l[j]+" "*(2*n-1-2*j)+l[j])
    7. w=6*2**(h-1)-1
    8. for i in range(len(l)):
    9. print(l[i].center(w))
    10. for i in range(h):
    11. print("*".center(w))

  • 相关阅读:
    JMESPath: 强大的处理JSON数据
    室友看世界杯我在学redis事务
    CentOS 7 安装新版本的Git
    题目 1056: 二级C语言-温度转换
    ESP32 下蓝牙播放音乐
    智慧运维解决方案-最新全套文件
    学习在Linux系统中安装curl命令教程
    19.13 Boost Asio 发送TCP流数据
    C#开发-集合使用和技巧(八)集合中的排序Sort、OrderBy、OrderByDescending
    pytorch_YOLOX剪枝【附代码】
  • 原文地址:https://blog.csdn.net/u013157570/article/details/127987848