在Python中寻找给定n的给定序列的末位数的程序

在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
  • 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

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程