题解
数值计算
1 条题解
-
0
解题思路
题目要求写一个函数
func(a, i),返回 i 个 a 组成的数。实现方法:循环 i 次,每次r = r × 10 + a。例如func(3,2):先 r=3,再 r=3×10+3=33。主程序累加
func(a, 1) + func(a, 2) + ... + func(a, n)就是答案。参考代码
#include <iostream> using namespace std; // 返回 i 个 a 组成的数,例如 func(3,2)=33 int func(int a, int i) { int r = 0; for (int k = 0; k < i; k++) r = r * 10 + a; return r; } int main() { int a, n; cin >> a >> n; long long sum = 0; for (int i = 1; i <= n; i++) sum += func(a, i); cout << sum << endl; return 0; }复杂度分析
函数每次循环 i 次,总次数 n(n+1)/2,时间复杂度 O(n²),额外空间复杂度 O(1)。
- 1