【简单】算法nodeJs:尼科彻斯定理

83 阅读1分钟

描述

尼科彻斯定理,又称为斐波那契数列定理,指的是对于任意正整数 n,存在一个由连续奇数组成的数列,使得该数列的和等于 n 的立方。
例如:
∙对于 n=1,数列 {1} 的和为 13=1;
∙对于 n=2,数列 {3,5} 的和为 23=3+5;
∙对于 n=3,数列 {7,9,11} 的和为 33=7+9+11;
∙对于 n=4,数列 {13,15,17,19} 的和为 43=13+15+17+19。

现在,给定一个正整数 n,请输出这个数列中的元素从小到大相加的形式。我们可以证明答案是唯一的。

输入描述:

输入一个整数 n(1≦n≦100) 代表需要输出的数列的和。

输出描述:

在一行上输出一个字符串,用于描述这个数列中的元素从小到大相加的形式。元素与元素之间用加号连接。

const rl = require("readline").createInterface({ input: process.stdin });
var iter = rl[Symbol.asyncIterator]();
const readline = async () => (await iter.next()).value;

void (async function () {
    // Write your code here
    line = parseInt(await readline());
    let n = 1;
    let arr = [];
    for (let i = 1; i < line; i++) {
        for (let j = 0; j < i; j++) {
            n += 2;
        }
    }
    arr[0] = n;
    for (let i = 1; i < line; i++) {
        arr[i] = arr[i - 1] + 2;
    }
    console.log(arr.join("+"));
})();