Ruby计算NxN正方形网格中有多少不同的正方形?

Ruby计算NxN正方形网格中有多少不同的正方形?,ruby,algorithm,Ruby,Algorithm,我使用ruby exercice创建了一个计算网格NxN中的平方的方法 就像n=1,有一个1乘1的正方形=1 If n = 3, there is one 3-by-3 square, four 2-by-2 squares and nine 1-by-1 squares = 14. 如果我们对任意n继续上面的序列,那么我们将有一个n×n平方,四个(n-1)-(n-1)平方,九个(n-2)-(n-2)平方,和n2 1乘1的平方 我想知道如何在ruby中实现这一点通常对于nxn正方形网格,正方

我使用ruby exercice创建了一个计算网格NxN中的平方的方法

就像n=1,有一个1乘1的正方形=1

 If n = 3, there is one 3-by-3 square, four 2-by-2 squares and nine 1-by-1 squares = 14.
如果我们对任意n继续上面的序列,那么我们将有一个n×n平方,四个(n-1)-(n-1)平方,九个(n-2)-(n-2)平方,和n2 1乘1的平方


我想知道如何在ruby中实现这一点通常对于nxn正方形网格,正方形的总数由

n²+(n-1)²+(n-2)²+…+1.

在Ruby中,您可以执行以下操作:

class Number

  def squares_counter(n)
    (1..n).map {|e| e*e }.inject(:+)
  end

end
map
创建一个从
1
n
的平方数数组,然后将它们相加。使用此方法,我们可以计算棋盘上的方块数:

num = Number.new
puts num.squares_counter(8) #=> 204

你在问什么?欢迎来到Stack Overflow。请读“。我们想看看你为解决这个问题所做努力的证据。代码或教程编写服务也是如此。我们希望你做研究,尝试,尝试更多,再尝试,然后问。你也可以在O(1)时间内计算。(n(n+1)(2n+1))/6好的,萨加尔。读者:如果不清楚为什么这样做,可以考虑计算
m
x
m
nx
n
nsquare中的
m
m
m
n
square的个数,
m@DaunteMack优秀点;你的方法当然会更好。