sum=0
n=int(input())
x = list(map(int, input().rstrip().split()))
for i in range(n):
str1=str(2**x[i])
if(len(str1)>2):
str1[len(str1)-2 :]
else:
str1
sum+=int(str1)
print(sum%100)
输入
3
1 2 3
输出
14
Constraints
1<=n<=10^7
0<=x<=10^18
此代码适用于较小的值,例如n = 4&x = 8,7,6,4,输出为= 64。但不适用于给定的约束条件。
答案 0 :(得分:0)
好吧,因为你这样做
2**x[i]
产生一个整数值,当x变得足够大时,它肯定会失败。
您可以进行数学计算:
假设您的计算机具有8GB主内存,那将是8*8*1024^3=68719476736
位内存。因此,可以跨越您的整个的单个最大值(不可能变大,但我只想强调这里的物理极限)是2**68719476736
,它位于某处在2^(10^10)
至2^(10^11)
就目前而言,我认为您的代码不适用于如此大的数字。