📅  最后修改于: 2023-12-03 15:12:01.653000             🧑  作者: Mango
对于给定的正整数n,计算具有偶数和的整数对(i,j),满足1 <= i < j <=n。
本文将提供两种算法实现:
常规算法
数学思路
对于每个i,我们可以枚举j,并计算它们的和。如果和是偶数,则将它们存储为一个整数对。时间复杂度为O(n^2)。
pairs = []
for i in range(1, n+1):
for j in range(i+1, n+1):
if (i+j) % 2 == 0:
pairs.append((i,j))
我们可以根据奇偶性来计算整数对的数量。当n是偶数时,整数对的数量为n(n-2)/4,当n是奇数时,数量为(n-1)(n-3)/4。时间复杂度为O(1)。
if n%2 == 0:
pairs_count = n*(n-2)/4
else:
pairs_count = (n-1)*(n-3)/4