学习Python第六天

前两天浏览了些基础中的基础,譬如如何安装Anacnoda,Notepad++,譬如定义变量,使用函数和方法等等- -

没装pycharm是因为需要破解,以后再说吧qwq

接下来两天,开始做题,也是很拼,算法需要再学习,算法好难- -

于是来记录下,自己做过的目前来说比较困难但已经解决的题:

题目描述:

国王将金币作为工资,发放给忠诚的骑士。第1天,骑士收到一枚金币;之后两天(第2天和第3天)里,每天收到两枚金币;之后三天(第4、5、6天)里,每天收到三枚金币;之后四天(第7、8、9、10天)里,每天收到四枚金币……这种工资发放模式会一直这样延续下去:当连续 n 天每天收到 n 枚金币后,骑士会在之后的连续n+1天里,每天收到n+1枚金币(n为任意正整数)。

你需要编写一个程序,确定从第一天开始的给定天数内,骑士一共获得了多少金币。

一,两个循环

 1 n = int(input())
 2 i = 1
 3 j = 1
 4 kb = 1
 5 sum = 0
 6 while i <=n:
 7     sum =+ kb
 8     if i == j:
 9         kb += 1
10         j = j + k
11     i+=1
12 print(sum)

二,更直观一些

 1 n = int(input())
 2 kb = 0
 3 day = 0#获得同等金币的天数
 4 sum = 0
 5 for  i in range(1,n+1):
 6     if day == 0:
 7         kb += 1
 8         day = kb
 9     if day !=0:
10         sum += kb
11         day -=1
12 print(sum)

题目描述:

"不能说的数字"是在聚会中常玩的一种游戏,假定这个数字是X(2

 1 x = int(input())
 2 n = int(input())
 3 m = int(input())
 4 k = (m-1)*n+1
 5 i = 1
 6 while i <=k:
 7     flag = True
 8     if i  % x == 0:
 9         k += 1
10         flag = False
11     if flag:
12         y =i
13         j = y%10
14         while j!=0:
15             if j == x:
16                 k += 1
17             y = y // 10
18             j = y % 10
19     i +=1
20 print(k)

题目描述:

输入10个整数,将他们从小到大排序后输出,并给出现在每个元素在原来序列中的位置。输出数据有两行,第一行为排序后的序列,第二行为排序后各个元素在原来序列中的位置。

这一题想破脑袋也想不出,最后问出来的。

 1 l = []
 2 for i in range(10):
 3     l.append(int(input()))
 4 li = list(enumerate(l))
 5 li.sort(key = lambda x:x[1])
 6 for x in li:
 7     print(x[1],end = " ")
 8 print("\n",end="")
 9 for x in li:
10     print(x[0]+1,end= " ")

 题目描述:

忘了,应该是证明一个数是由两个质数相乘而来。

 1 import math
 2 def prime(num):
 3     if num<=1:
 4         return False
 5     else:
 6         for i in range(2,int((math.sqrt(num)+1))):
 7             if num%i == 0:
 8                 return False
 9         return True
10 def fen(num):
11     arr=[]
12     for i in range(2,int((math.sqrt(num)+1))):
13         if num%i==0:
14             arr.append(i)#i一定是质数,否则在它之前应该有它自己的因子已经添加了。
15             arr.append(int(num/i))
16             break
17     return arr
18 t=int(input())
19 temp = []
20 for i in range(t):
21     temp.append(int(input()))
22 for x in temp:
23     if fen(x)==[]:
24         print("N")
25     elif prime(fen(x)[1]):#第二个因子是质数
26         print("Y")
27     else:
28         print("N")

接下来不做题了,先学算法去- -

 

 

你可能感兴趣的:(学习Python第六天)