任务
给定两个整数d
和n
,找到表示n
为d
平方和的方式数。也就是说,,对于所有整数n == r_1 ^2 + r_2 ^2 + ... + r_d ^2
,r_m
都是一个整数1 ≤ m ≤ d
。请注意,交换两个不同的值(例如r_1
和r_2
)被认为与原始解决方案不同。
例如,数字45可以写为2平方和的8种不同方式:
45
== (-6)^2 + (-3)^2
== (-6)^2 + 3^2
== (-3)^2 + (-6)^2
== (-3)^2 + 6^2
== 3^2 + (-6)^2
== 3^2 + 6^2
== 6^2 + (-3)^2
== 6^2 + 3^2
规则
- 允许使用内置解决方案,但不能与之竞争(Ahem,Mathematica)
- 也禁止出现标准漏洞。
- 输入可以颠倒。
示例I / O
In: d, n
In: 1, 0
Out: 1
In: 1, 2
Out: 0
In: 2, 2
Out: 4
In: 2, 45
Out: 8
In: 3, 17
Out: 48
In: 4, 1000
Out: 3744
In: 5, 404
Out: 71440
In: 11, 20
Out: 7217144
In: 22, 333
Out: 1357996551483704981475000
这是代码高尔夫球,因此使用最少字节的提交会获胜!
1, 0
测试用例,有一种1
方法可以表示0
为1
平方和:0 == 0^2
。