平方数是以n^2
n为整数形式的数字。这些也称为完美平方,因为当您求平方根时,您会得到一个整数。
前10个平方数是:(OEIS)
0, 1, 4, 9, 16, 25, 36, 49, 64, 81
三角数是可以形成等边三角形的数。第n个三角数等于1到n之间所有自然数的总和。
前10个三角形数字是:(OEIS)
0, 1, 3, 6, 10, 15, 21, 28, 36, 45
正方形三角形数字是正方形和三角形的数字。
前10个方形三角数为:(OEIS)
0, 1, 36, 1225, 41616, 1413721, 48024900, 1631432881, 55420693056, 1882672131025, 63955431761796
有无限多个平方数,三角形数和正方形三角形数。
编写一个给定输入(参数或标准输入)数的程序或命名函数n
,计算出n
第平方三角数并输出/返回,其中n是一个非零正数。(对于n = 1返回0)
为了使程序/功能有效提交,它至少应返回所有小于2 ^ 31-1的正方形三角形。
奖金
-4字节,能够输出小于2 ^ 63-1的所有平方三角数
-4个字节,理论上可以输出任何大小的平方三角数。
对于采用非多项式时间的解决方案,+ 8字节的惩罚。
奖金堆栈。
这是代码高尔夫挑战赛,因此以最少的字节数获胜。
n
步骤,并且在每一步中,算法都花费线性时间,因为in的位数呈线性增长n
。我认为线性时间是不可能的。除非您说算术运算是恒定时间?