用户输入一个正整数求1+12+123+1234+……的前n项的和即这个整数前n项的和
算法1:暴力枚举
- 读入正整数 n
- 令 sum = 0
- 从 i = 1 循环到 n,每次执行以下操作:
- 令 s = 0,从 j = 1 循环到 i,每次执行以下操作:
- 令 k = j,从 p = 1 循环到 j,每次执行以下操作:
- 令 t = k,从 q = 1 循环到 p - 1,每次执行以下操作:
- 令 t = t * 10 + k
- 令 s = s + t
- 令 t = k,从 q = 1 循环到 p - 1,每次执行以下操作:
- 令 sum = sum + s
- 令 k = j,从 p = 1 循环到 j,每次执行以下操作:
- 令 s = 0,从 j = 1 循环到 i,每次执行以下操作:
- 输出 sum
时间复杂度:O(n^4)
算法2:递推
- 读入正整数 n
- 令 sum = 1,last = 1
- 从 i = 2 循环到 n,每次执行以下操作:
- 令 last = last * 10 + i
- 令 sum = sum + last
- 输出 sum
时间复杂度:O(n)
原文地址: http://www.cveoy.top/t/topic/gnRp 著作权归作者所有。请勿转载和采集!