在Python中寻找给定n的给定序列的末位数的程序
假设有一个值n。我们必须找到序列S的最后一位数字。 S的等式如下−
\sum_{i=0: 2^{^{i}}\leqslant n}^{\alpha } \sum_{j=0}^{n} 2^{2^{^{i}+2j}}
因此,如果输入为n = 2,则输出为6,因为:这里只有i = 0和i是有效的,因此
- S 0 = 2^(2^0 + 0) + 2^(2^0 + 2) + 2^(2^0 + 4) = 42
- S 1 = 2^(2^1 + 0) + 2^(2^1 + 2) + 2^(2^1 + 4) = 84 该和为42+84 = 126,因此末位数为6。
要解决此问题,我们将按以下步骤进行−
- total:= 0
- temp := 1
- while temp <= n, do
- total := total + (2^temp mod 10)
- temp := temp * 2
- total := total * (1 +(4 when n is odd otherwise 0)) mod 10
- total := total + (2^temp mod 10)
- return total
示例
让我们看一下以下实现以更好地了解−
def solve(n):
total= 0
temp = 1
while (temp <= n):
total += pow(2, temp, 10)
temp *= 2
total = total * (1 + (4 if n %2 ==1 else 0)) % 10
return total
n = 2
print(solve(n))
输入
2
输出
6