链接: Gym101964
题意:
给出一个分成 个刻度的钟,钟上有 个长度分别为 的指针,指针都指向刻度,以针尖为三角形顶点,问一共能形成多少个包含圆心的不同三角形?(可以圆心在边上)
答案对
取余。
分析:
分析当三指针长度不同时的情况:
若
为偶数,答案为
;
若
为奇数,答案为
;
所以,当三根指针长度均相同时,答案要除以 ,当三根指针中有两根长度相同时,要除以 。
有除法取余不便,直接上python。
代码:
def cal(n):
if(n%2 == 0):
return n*((2+n//2)*(n//2-1)+(n-2))
else:
return n*((1+n//2)*(n//2))
MOD = 2**64
a,b,c,n = map(int,input().split(" "))
if(a != b and a != c and b != c):
print(cal(n) % MOD)
elif(a == b and b == c):
print(cal(n)//6 % MOD)
else:
print(cal(n)//2 % MOD)