14173. [GESP202609 三级 Scratch] 26. 直角三角形数列

Scratch 编程 · 满分 25 分

[GESP202609 三级 Scratch] 26. 直角三角形数列

原卷样例1效果

原卷样例2效果

【题目描述】

小杨最近学到了一个新知识:在一个直角三角形中,斜边的平方等于两条直角边的平方和。

他突发奇想,创造了一个有趣的数列,叫做直角三角形数列。

这个数列的规则是:

  • 前两个数由小杨自己定(比如 3.0 和 4.0);
  • 从第三个数开始,每一个数都等于它前面两个数的平方和再开平方。

如果第一项是 3.0,第二项是 4.0,那么:

  • 第三项 =3.02+4.02=9+16=25=5.0=\sqrt{3.0^2+4.0^2}=\sqrt{9+16}=\sqrt{25}=5.0
  • 第四项 =4.02+5.02=16+25=\sqrt{4.0^2+5.0^2}=\sqrt{16+25} =41≈6.403124=\sqrt{41}\approx6.403124
  • 第五项 =5.02+6.4031242≈8.124038=\sqrt{5.0^2+6.403124^2}\approx8.124038

……

现在,小杨给了你数列的第一项和第二项,还告诉你一个上限值。

默认小猫角色和白色背景,编写程序帮助小杨计算出这个数列的第几项会第一次超过这个上限。将结果存入变量“ans”中。

注:“开平方”就是求平方根,比如表达式 3.02+4.02\sqrt{3.0^2+4.0^2} 可用以下积木块表示,该表达式的结果等于 5.0。

平方根积木

【输入描述】

新建变量“a”,表示数列的第一项。

新建变量“b”,表示数列的第二项。

新建变量“k”,表示上限值。

注意:输入的第一项、第二项和上限值都不超过 1000,且保证第一项小于第二项。

如下图所示:

输入变量

【输出描述】

新建变量“ans”,一个正整数,表示数列的第几项的值会第一次超过上限。

如下图所示:

输出变量

【输入样例1】

a = 3.0
b = 4.0
k = 10.0

【输出样例1】

ans = 6

【样例解释1】

  • 第 1 项:3.0
  • 第 2 项:4.0
  • 第 3 项:3.02+4.02=5.0\sqrt{3.0^2+4.0^2}=5.0
  • 第 4 项:4.02+5.02≈6.403124\sqrt{4.0^2+5.0^2}\approx6.403124
  • 第 5 项:5.02+6.4031242≈8.124038\sqrt{5.0^2+6.403124^2}\approx8.124038
  • 第 6 项:6.4031242+8.1240382≈10.344080\sqrt{6.403124^2+8.124038^2}\approx10.344080

第 6 项,超过了上限 10.0,所以答案是 6。

【输入样例2】

a = 1.0
b = 2.0
k = 3.0

【输出样例2】

ans = 5

【样例解释2】

  • 第 1 项:1.0
  • 第 2 项:2.0
  • 第 3 项:1.02+2.02≈2.236068\sqrt{1.0^2+2.0^2}\approx2.236068
  • 第 4 项:2.02+2.2360682≈3.0\sqrt{2.0^2+2.236068^2}\approx3.0
  • 第 5 项:2.2360682+3.02≈3.741657\sqrt{2.236068^2+3.0^2}\approx3.741657

第 5 项,超过了上限 3.0,所以答案是 5。

【注意事项】

  1. 变量名的拼写(包括大小写)要和题目完全一致(建议直接从题目中复制变量名,避免自己打字时弄错大小写或拼写)。
  2. 输入变量直接赋值即可,无需使用“询问并等待”积木块。
  3. 输出结果存放在对应变量中即可,无需使用“说…”或“说…,2 秒”积木块。

我的作品

在编辑器中完成积木,提交后查看结果。

历史提交