- 输出双层金字塔。
while True:
try:
n = int(input())
space = ' '
xing = '*'
a = n-1
b = 1
for i in range(n):
print(f'{a*space}{b*xing}{a*space}')
a -=1
b +=2
c = a +2
d = b-4
for i in range(n-1):
print(f'{c*space}{d*xing}{c*space}')
c +=1
d -=2
except:
break

2.打印数字三角形,从1开始输出,第i行输出i个数,每个数字按4个位置输出
注:c语言中 %4d可以输出一个数,占据四个位置,右对齐。
n = int(input())
a =1
for i in range(1,n+1):
for j in range(i):
print(f'{a:4d}',end = '')
a+=1
print()

3.请打印输出一个字符金字塔,字符金字塔的特征请参考样例
row = ord(input())-65
wor = chr(65)
#print(wor)
#print(row)
width = row*2+1
for i in range(row+1):
wor =chr(65+i)
for j in range(i,0,-1):
wor = wor+chr(64+j)
wor = chr(64+j)+wor
print(wor.center(width,' '))

4.涂小天是个画家,他希望有一天他的画能让心仪的她看到。
只是后来她有了他,他却只有他的画,他望着他的画,默默的发呆。
可惜做题的你,画不出他画的她,所以,我们只好画点简单的画,或许有一天,你就会遇到画里她/他吗?
因此我们规定画画的内容:输入一个正整数 n(n为奇数),输出高度为 n 的菱形,例如 n = 5 时,输出
for _ in range(int(input())):
n = int(input())
width = n
space = ' '
xing = '*'
a = (n+1)//2
x = a-1
y = 1
for i in range(a):
print(f'{x*space}{y*xing}')
x -=1
y +=2
b = x+2
d = y-4
for i in range(a-1):
print(f'{b*space}{d*xing}')
b +=1
d -=2

5.KiKi学习了循环,BoBo老师给他出了一系列打印图案的练习,该任务是打印用“*”组成的箭形图案。
while True:
try:
n = int(input())
w = n*2
x = 1
space = ' '
xing ='*'
for i in range(n+1):
print(f'{w*space}{x*xing}')
w -=2
x +=1
a = w+4
y = x-2
for i in range(n):
print(f'{a*space}{y*xing}')
a +=2
y -=1
except:
break

6.牛牛开始学习数列啦
现在他想知道1-2+3-4…+n的值
n = int(input())
a = 1
for i in range(2,n+1):
if i%2==0:
a = a-i
else:
a = a+i
print(a)

7.这次牛牛又换了个数列,他想计算:1+1/2+1/3+…+1/N的值。(保留6位小数)
n = int(input())
a = 1
for i in range(2,n+1):
a = a+1/i
print(f'{a:.6f}')

8.牛牛准备继续进阶,计算更难的数列
输入一个整数n,计算 1+1/(1-3)+1/(1-3+5)+…+1/(1-3+5-…((-1)^(n-1))*(2n-1))的值
n=int(input())
m=0
for i in range(1,n+1):
if i % 2==0:
m-=1/i
else:
m+=1/i
print("%0.3f"%m)

9. 帮助牛牛计算 1+(1+2)+(1+2+3)+…+(1+2+3+…+n)
n = int(input())
a = 0
for i in range(1,n+1):
for j in range(1,i+1):
a +=j
print(a)

10.求fib数列的第n项,前几项是1,1,2,3,5,每一项都等于前面两项的和
n = int(input())
l = [0,1,1,2,3,5]
if n<=5:
print(l[n])
else:
for i in range(6,n+1):
t = l[i-1]+l[i-2]
l.append(t)
print(l[n])

def fib(n):
if n==1 or n==2:
return 1
else:
return fib(n-1)+fib(n-2)
print(fib(int(input())))
11.
def func(n):
if n==1:
return 0
elif n==2 or n==3:
return 1
else:
return func(n-3)+2*func(n-2)+func(n-1)
print(func(int(input())))

- 计算a+b多组数据,每组输入两个整数,当两个整数都为0时表示输入结束
while True:
a,b = map(int,input().split())
if a==0 and b==0:
break
else:
print(a+b)

13.凯刚写了一篇美妙的作文,请问这篇作文的标题中有多少个字符?
注意:标题中可能包含大、小写英文字母、数字字符、空格和换行符。统计标题字 符数时,空格和换行符不计算在内。
s = input()
n =0
for i in s:
if i!=' ' and i != '\n':
n +=1
print(n)

14.栗酱在酒桌上玩一个小游戏,第一个人从1开始数数,如果遇到数字中含4或者数字是4的倍数则跳过报下一个,谁数错了就要罚酒一杯。
所以栗酱想让你写个程序把所有数生成出来,这样她就可以作弊直接读了。你一定能解决的吧?
n = int(input())
for i in range(1,n+1):
if i%4 != 0 and '4' not in str(i):
print(i)
else:
continue

15.给定一个正整数k( 3 ≤ k ≤ 15 ),把所有k的方幂及所有有限个互不相等的k的方幂之和构成一个递增的序列,例如,当k = 3时,这个序列是:
1,3,4,9,10,12,13,…(该序列实际上就是:30,31,30+31,32,30+32,31+32,30+31+32,…)
请你求出这个序列的第N项的值(用10进制数表示)。例如,对于k = 3,N = 100,正确答案应该是 981。
a,b=map(int,input().split())
print(int(bin(b)[2:],a))

16.旅行完了的牛牛又胖了,于是他终于下决心要戒掉零食,所以他带着他最爱的土豆回到了牛星,开始了在牛星种土豆和只吃土豆减肥的日子。(吃土豆能减肥么?)经过了辛勤的劳作,牛牛种的土豆奇迹般的收获了,于是他得到了很多很多很多很多的土豆(实在太多,数不过来了,你可以认为是无穷个)。他将这很多很多个土豆按照重量从小到大进行了排序,每个土豆的编号依次为1、2、3……N,然后他就惊奇地发现:由于牛星球的土壤很奇特,第i个土豆的重量正好是3^(i-1) 。
现在牛牛饿了要吃掉其中的若干个土豆。他每次拿的土豆的数目是任意的,选的土豆也是任意的。选中的土豆的总重量即每个土豆重量之和。例如:牛牛这一次拿了第一个土豆和第三个土豆,那么总重量为1+9=10。
牛牛想知道,在所有的选土豆方案里,他可以获得的第k大的“总重量”是多少。
for i in range(int(input())):
k = int(input())
print(f'Case #{(i+1)}: {int(bin(k)[2:],3)}')

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

18.这天,托米家的电影院门口排起了长队–因为最新的电影"托米历险记"就要上映了!
每个人都有且仅有一张面值为25或50或100元的钞票.一张电影票的价格是25元.
托米想知道售票员能否在初始金钱为0并且按排队顺序售票的情况下完成找零.
n = int(input())
a = list(map(int,input().split()))
sums = 0
for i in a:
if i==25:
sums +=25
else:
sums =sums-i+25
if sums<0:
print("NO")
else:
print("YES")

19.P老师需要去商店买n支铅笔作为小朋友们参加NOIP的礼物。她发现商店一共有 3 种包装的铅笔,不同包装内的铅笔数量有可能不同,价格也有可能不同。为了公平起见,P老师决定只买同一种包装的铅笔。
商店不允许将铅笔的包装拆开,因此P老师可能需要购买超过 n 支铅笔才够给小朋友们发礼物。
现在P老师想知道,在商店每种包装的数量都足够的情况下,要买够至少 n 支铅笔最少需要花费多少钱。
math.ceil() # 向上取整函数 导入math包
import math
tal = int(input())
a, ap = map(int, input().split())
b, bp = map(int, input().split())
c, cp = map(int, input().split())
print(min(ap * math.ceil(tal / a),
bp * math.ceil(tal / b),
cp * math.ceil(tal / c)))

20. 给你一个整数n, 判断它是否是素数。注意1不是素数。
def main(n):
if n == 1:
return "No"
elif n == 2:
return "Yes"
else:
for i in range(2, n):
if n % i == 0:
return "No"
return "Yes"
for T in range(int(input())):
print(main(int(input())))

21. 今天牛牛学到了回文串,他想在数字里面找回文,即回文数,回文数是正着读与倒着读都一样的数,比如1221,343是回文数,433不是回文数。请输出不超过n的回文数。
n = eval(input())
for i in range(1,n):
s = str(i)
if s==s[::-1]:
print(i)

22. ZWY最近喜欢在下课后喝酒,她说:“喝酒是人类进步的动力”。现在,便利商店推出了兑换活动。
1.两个酒瓶可以兑换1瓶酒
2.四个酒瓶盖子可以兑换1瓶酒
她先知道,在当前她所拥有的资金m和一些空酒瓶k、瓶盖g和当前酒价p已知情况下,她最多可以喝到多少瓶酒。
m,k,g,p = map(int,input().split())
if m >=0:
ans = m//p #喝的
else:
ans = 0
x = ans+k #酒瓶
y = ans+g #酒盖
while x >=2 or y>=4:
a = x//2
b = y//4
t= (a+b)
x = (x%2)+t
y = (y%4)+t
ans += t
print(ans)

23.
HtBest的小鲲长大变成了大鹏,大鹏在天际翱翔,看到了一片绵延的山脉,每座山都有自己的高度,大鹏想穿过这片山脉。由于他只能紧贴地面飞行,他想知道他一共要翻越几次大山(上升->平飞->下降,算一次,其中平飞可以没有),初始时,大鹏在山脉的左端。
n=int(input())
up=0
down=0
total=0
ls=list(map(int,input().split()))
for i in range(n-1):
if ls[i+1]>ls[i]:
up+=1
elif ls[i+1]<ls[i] and up>0:
up=0
total+=1
print(total)

24.已知:Sn= 1+1/2+1/3+…+1/n。显然对于任意一个整数K,当n足够大的时候,Sn大于K。
现给出一个整数K(1<=k<=15),要求计算出一个最小的n;使得Sn>K。
k = int(input())
n = 1
s = 1
while s<=k:
n += 1
s += 1/n
print(n)

25.众所周知,年轻人是不讲5的。作为年轻人,你应该继承这样的“优良传统”。
给定一个数串,输出时将其中的数字’5’替换成字符’*'。
print(input().replace('5', '*'))

26.
m=0
while True:
n=input()
if n=='.':
break
m+=n.count('a')
print(m)

27.有一个不断升温的杆子,上面有若干个蚂蚁,蚂蚁们需要尽快爬出这个杆子,否则就会因为高温而被烧死。这里假设每只蚂蚁行走的最大速度是 1cm/s. 当一只蚂蚁走到杆的尽头时,就会立即从秆上掉落,从而逃离热杆。我们知道每只蚂蚁在杆上的初始位置,但是,不知道蚂蚁向哪个方向前行。你的任务是计算所有蚂蚁都从杆上逃离可能的最短时间。
h,n = map(int,input().split())
a = list(map(int,input().split()))
ans = 0
for i in range(n):
ans = max(ans,h-a[i] if a[i]>h/2 else a[i])
print(ans)

28.给出n个数字,请你求出在给出的这n个数字当中,最大的数字与次大的数字之差,最大的数字与次小的数字之差,次大的数字与次小的数字之差,次大的数字与最小的数字之差
n=int(input())
l=list(map(int,input().split()))
s=set(l)
l=list(s)
l.sort(reverse=True)
a = l[0]-l[1]
b = l[0]-l[-2]
c = l[1]-l[-2]
d = l[1]-l[-1]
print(f'{a} {b} {c} {d}')

29.试计算在区间1 到n 的所有整数中,数字x(0 ≤ x ≤ 9)共出现了多少次?
例如,在1到11 中,即在1、2、3、4、5、6、7、8、9、10、11 中,数字1 出现了4 次。
n,x = map(int,input().split())
ans = 0
for i in range(1,n+1):
l = list(str(i))
ans += l.count(str(x))
print(ans)

30.n个人(0,1,2,3,4…n-1),围成一圈,从编号为k的人开始报数,报数报到m的人出队(报数是1,2,…m这样报的)。下次从出队的人之后开始重新报数,循环往复,当队伍中只剩最后一个人的时候,那个人就是大王。现在,给定n,k,m,请你求出大王的编号。
n,k,m=map(int,input().split())
l=list(range(n))
while len(l) >1:
a=(k+m-1)%len(l)
del l[a]
k=a
#print(l)
print(l[0])
