赞
踩
如果一个分数的分子和分母的最大公约数是 1,这个分数称为既约分数。请问,有多少个既约分数,分子和分母都是 1 到 2020 之间的整数
sum = 0
for i in range(1,2021):
for j in range(1,2021):
a1 = i
a2 = j
while a1 != a2:
if a1>a2 :
a1 = a1 - a2
else:
a2 = a2 - a1
if(a1==a2==1):
sum = sum +1
print(sum)
解题思路:这里这个题非常简单就是求最大公约数的公式方法要会。
小蓝准备用 256MB256MB 的内存空间开一个数组,数组的每个元素都是 3232 位 二进制整数,如果不考虑程序占用的空间和维护内存需要的辅助空间,请问 256MB256MB 的空间可以存储多少个 3232 位二进制整数?
a=(256*1024*1024*8)/32
print(int(a))
解题思路:记住32位二进制就是32个小bit。
整个 2020 世纪(19011901 年 11 月 11 日至 20002000 年 1212 月 3131 日之间),一共有多少个星期一
import datetime
a = datetime.date(1901,1,1)
b = datetime.date(2000,12,31)
d = datetime.timedelta(days=1)
sum = 0
while a<b:
if a.weekday()==0:
sum = sum +1
a= a + d
print(sum)
解题思路:利用datetime模块进行while循环找到每个星期一。
如果我们按从上到下、从左到右的顺序把所有数排成一列,可以得到如下数列: 1, 1, 1, 1, 2, 1, 1, 3, 3, 1, 1, 4, 6, 4, 1, 1,1,1,1,2,1,1,3,3,1,1,4,6,4,1,⋯
给定一个正整数 N,请你输出数列中第一次出现 N 是在第几个数?
n = int(input()) # 求组合数 def C(a, b): res = 1 fz = a #分子 for fm in range(1,b+1): #1~b res = res * fz // fm#递推公式=分子//分母 fz -= 1 if res > n: return res return res for k in range(16, -1, -1): l = 2 * k r = max(n, l) res = int(-1) while l <= r: mid = l + r >> 1 if C(mid, k) >= n: res = mid r = mid - 1 else: l = mid + 1 if C(res, k) == n: print((res + 1) * res // 2 + k + 1) break
解题思路:主要是明白杨辉三角内的每个数其实是行列-1的组合数。然后取一半再根据对称轴元素的规律,进行二分查找。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。