输入n在[1X n]中x n]上除以3余2X 输入一个正整数n X 输入一个正整数n X 输出[1× n]上除以3余2×除以五余一的所有整数和
时间: 2023-11-21 18:04:14 浏览: 67
算法1:
- 遍历[1, n]中的所有整数
- 对于每个整数,判断是否除以3余2且除以5余1
- 如果是,则累加到结果中
- 返回结果
时间复杂度:O(n)
算法2:
- 找到[1, n]中除以3余2且除以5余1的第一个整数x
- 找到[1, n]中除以3余2且除以5余1的最后一个整数y
- 计算[x, y]中除以3余2且除以5余1的所有整数的和
- 返回结果
时间复杂度:O(1)
具体实现见代码:
算法1
def sum_of_num(n): res = 0 for i in range(1, n+1): if i % 3 == 2 and i % 5 == 1: res += i return res
算法2
def sum_of_num(n): # 找到第一个符合条件的整数 x = 2 while x % 3 != 2 or x % 5 != 1: x += 1 # 找到最后一个符合条件的整数 y = n - (n % 15) + 7 while y % 3 != 2 or y % 5 != 1: y -= 1 # 计算[x, y]中符合条件的整数的和 res = 0 for i in range(x, y+1): if i % 3 == 2 and i % 5 == 1: res += i return res
n = int(input()) print(sum_of_num(n))
相关推荐


















