【JavaScript】7-38 数列求和-加强版 (20 分)

题目:

给定某数字A(1 ≤ A ≤ 9)以及非负整数N(0 ≤ N ≤ 100000),求数列之和S=A+AA+AAA++AAA(N个A)。例如A=1, N=3时,S = 1 + 11 +111 = 123。

输入格式:

输入数字A与非负整数N。

 

输出格式:

输出其N项数列之和S的值。

 

输入样例:

1 3

 

 

输出样例:

123

 

 

JavaScript代码:

 1 const { parse } = require('path')
 2 var readline = require('readline')
 3 
 4 const rl = readline.createInterface({
 5     input: process.stdin,
 6     output: process.stdout
 7 })
 8 
 9 rl.on('line', function(line) {    
10     let tokens = line.split(' ')
11     let A = tokens[0]
12     let N = tokens[1]
13 
14     let ret = sum(A, N)
15     console.log(ret)
16 })
17 
18 function sum(A, N) {
19     let res = []
20     let carry = 0
21 
22     for (let i = 0; i < N; i++) {
23         let s = A * (N - i) + carry
24         res.push(s % 10)
25         carry = Math.floor(s / 10)
26     }
27 
28     if (carry != 0 || N == 0) {
29         res.push(carry)
30     }
31     
32     res.reverse()
33     return res.join('')
34 }

 

posted @ 2021-03-03 09:13  moonskies  阅读(181)  评论(0编辑  收藏  举报