CodeWar(JavaScript)---Perimeter of squares in a rectangle

9 篇文章 0 订阅

Perimeter of squares in a rectangle

问题:

The drawing shows 6 squares the sides of which have a length of 1, 1, 2, 3, 5, 8. It’s easy to see that the sum of the perimeters of these squares is : 4 * (1 + 1 + 2 + 3 + 5 + 8) = 4 * 20 = 80

Could you give the sum of the perimeters of all the squares in a rectangle when there are n + 1 squares disposed in the same manner as in the drawing:

alternative text

#Hint: See Fibonacci sequence

#Ref: http://oeis.org/A000045

The function perimeter has for parameter n where n + 1 is the number of squares (they are numbered from 0 to n) and returns the total perimeter of all the squares.

perimeter(5)  should return 80
perimeter(7)  should return 216

NOTE: due to a misspelling in the reference solution for random tests, have an outer auxiliary function that calculates Fibonacci numbers, name this outer function fib. (More than 500 CW passed the kata so it is now impossible to change the random tests).
翻译(来自有道翻译):

这张图显示了6个正方形,它们的边长是1、1、2、3、5、8。很容易看出,这些正方形的周长之和是:4 * (1 + 1 + 2 + 3 + 5 + 8)= 4 * 20 = 80

当n + 1个正方形按图中所示的方式排列时,能否给出一个矩形中所有正方形的周长之和:

替代文本

提示:参见斐波那契数列

#裁判:http://oeis.org/A000045

函数周长为参数n,其中n + 1是正方形的数目(它们的编号从0到n),并返回所有正方形的总周长。

perimeter(5)  should return 80
perimeter(7)  should return 216

注意:由于在随机测试的参考解决方案中有一个拼写错误,有一个计算斐波那契数的外部辅助函数,将这个外部函数命名为fib。(超过500名CW通过了kata,所以现在不可能改变随机测试)。
个人解题代码:

//思路:初始化tmp为一个[1,1]的数组,for循环n次并计算相应的num
//每次循环将num加到sum当中最后输出sum*4
function perimeter(n) {
  var tmp = [1,1];
  var num = 0;
  var sum = 2;
  for(var i = 0 ; i < n-1 ; i++){
    num = tmp[i] + tmp[i+1];
    tmp.push(num);
    sum+=num
  }
  return sum*4
  
}

高亮回答:

function perimeter(n) {
  let arr = [1, 1];
  for(let i = 0; i < n - 1; i++) {
    arr.push(arr[arr.length - 1] + arr[arr.length - 2]);
  }
  return 4 * arr.reduce((sum, num) => sum + num, 0);
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 矩形类rectangle可以包含以下属性和方法: 属性: - 长度length - 宽度width 方法: - 计算面积area - 计算周长perimeter - 判断是否为正方形is_square 代码示例: class Rectangle: def __init__(self, length, width): self.length = length self.width = width def area(self): return self.length * self.width def perimeter(self): return 2 * (self.length + self.width) def is_square(self): return self.length == self.width # 示例 rect = Rectangle(5, 3) print(rect.area()) # 输出 15 print(rect.perimeter()) # 输出 16 print(rect.is_square()) # 输出 False ### 回答2: 在设计一个矩形类Rectangle时,首先需要考虑到这个类需要有哪些属性和方法。 属性: 1. 长度(length):表示矩形的长边长度。 2. 宽度(width):表示矩形的短边长度。 方法: 1. 获取周长(getPerimeter):返回矩形的周长,计算方式为(length + width)* 2。 2. 获取面积(getArea):返回矩形的面积,计算方式为length * width。 3. 判断是否为正方形(isSquare):返回一个布尔值,判断该矩形是否为正方形。 4. 获取长和宽的比值(getRatio):返回长和宽的比值,即 length / width。 基于上述属性和方法,我们可以开始编写矩形类Rectangle的代码。以下是一个可能的实现: ``` class Rectangle: def __init__(self, length, width): self.length = length self.width = width def getPerimeter(self): return (self.length + self.width) * 2 def getArea(self): return self.length * self.width def isSquare(self): return self.length == self.width def getRatio(self): return self.length / self.width ``` 在实现矩形类Rectangle时,我们使用了Python中的类(class)和方法(def),并且使用了初始化方法(__init__)来初始化矩形的长度和宽度属性。在方法中,我们可以直接使用length和width属性来计算周长、面积和长宽比。 接下来,我们可以使用以下代码测试矩形类Rectangle的功能: ``` # 创建一个矩形对象 rect = Rectangle(5, 8) # 测试周长、面积、是否为正方形和长宽比 print("周长为:", rect.getPerimeter()) print("面积为:", rect.getArea()) print("是否为正方形:", rect.isSquare()) print("长宽比为:", rect.getRatio()) ``` 上述代码将创建一个长为5、宽为8的矩形对象,并依次测试其周长、面积、是否为正方形和长宽比功能。根据测试结果,我们可以验证矩形类Rectangle的代码实现正确。 ### 回答3: 矩形是面积和周长都可以计算的平面图形。我们可以设计一个矩形类Rectangle,用来表示一个矩形对象。矩形类的属性包括宽度(width)和高度(height),方法包括计算面积(area)和周长(perimeter)。 1. 属性 属性是类的成员变量,用来描述类具有的特征。矩形类的属性有两个,分别为宽度和高度: ```python class Rectangle: def __init__(self, width, height): self.width = width self.height = height ``` 这里我们使用了Python的构造函数__init__()来初始化类的属性。 2. 方法 方法是类的成员函数,用来描述类具有的行为。矩形类的方法包括计算面积和周长: ```python class Rectangle: def __init__(self, width, height): self.width = width self.height = height def area(self): return self.width * self.height def perimeter(self): return 2 * (self.width + self.height) ``` 这里我们定义了类的两个方法,area()用来计算矩形的面积,perimeter()用来计算矩形的周长。 3. 使用 创建矩形对象时,需要指定宽度和高度: ```python r = Rectangle(6, 4) print(r.area()) # 输出矩形的面积 print(r.perimeter()) # 输出矩形的周长 ``` 这里我们创建了一个宽度为6,高度为4的矩形对象r,并调用了它的面积和周长方法,输出结果如下: ``` 24 20 ``` 这说明矩形的面积是24,周长是20。 总结: 以上是使用Python语言设计一个矩形类,包括矩形类的属性、方法和使用。通过这个例子,我们可以学习到面向对象编程中类的设计和使用,进一步掌握Python语言的编程技巧和方法。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值