实验名称:流程控制练习2

一、实验目的:

1.求两数的最大公约数

2.输入边长,打印对角线相连的菱形

3.完成杨辉三角

(杨辉三角是一种数学图形,由数字排列成类似三角形的形状。

它的每个数值等于它上方两个数值之和。如下图所示)

4.有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13...求出这个数列的前20项之和。

5.完数,又叫完全数。它所有的真因子(即除了自身以外的约数)的和(即因子函数),恰好等于它本身。例如6=1+2+3。编程找出1000以内的所有完数。

备注:以上题目任选其三完成本次实验课程

二、实验环境:

安装pycharm2023.3.4 

安装适配的jdk

三、实验步骤:

1.求两数的最大公约数

way one:辗转取余法

(1)让用户输入两个数字a,b

(2)用变量接收这两个数字的值,分出较大的数,假如是a

(3)进行取余计算a%b

(4)余数为0,则最大公约数为b

(5)余数不为0,创建临时变量r接收a%b,a=b,

Way two:更相减除法

(1)让用户输入两个数字a,b

(2)用变量接收这两个数字的值,判断是否相等

(3)不相等的话用大的减小的

(4)输出最小公约数

2.输入边长,打印对角线相连的菱形

如下图:

Way one:

(1)打印上半部分包括对角线,利用for循环+算法,总共的行数是2n-1,从第一行开始打印,就在第n行结束

(2)打印下半部分,注意空格和星号的计算

(3)显示结果

Way two:

(1)让用户输入菱形的边长,设置两个变量==总行数

(2)根据设置的两个变量作为打印条件

(3)先打印第一行和最后一行

(4)分情况讨论打印上半部分和下半部分,算法计算在草稿本上完成

(5)显示结果

3.完成杨辉三角

(杨辉三角是一种数学图形,由数字排列成类似三角形的形状。

它的每个数值等于它上方两个数值之和。如下图所示

(1)让用户输入想要计算的行数

(2)先打印一二行

(3)打印第二行以下的行数:1+ (上一行第j个+上一行第j-1个) +1

(4)输出结果

4.有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13...求出这个数列的前20项之和。

(1)定义函数fun(n),设置一个参数n作为输入

(2)定义两个变量a、b,分别初始化为2.0和1.0,变量total,用于存储累加的结果

(3)使用for循环从1到n+1进行迭代。在每次迭代中,将a/b的结果累加到total中,并且更新a和b的值,使得a=原来的a+b,而b=原来的a。更新a和b的值。

(4)在循环结束后,打印出累加的结果total

(5)计算从1到20的所有项的和,并将结果打印出来

5.完数,又叫完全数。它所有的真因子(即除了自身以外的约数)的和(即因子函数),恰好等于它本身。例如6=1+2+3。编程找出1000以内的所有完数。

(1)用户输入一个数n

(2)创建一个空列表s,用于存储n的因子

(3)使用for循环从1到n-1遍历,判断每个数是否为n的因子,如果是则将其添加到列表s中

(4)判断列表s中所有元素的和是否等于n,如果相等则说明n是完全数

(5)如果n是完全数,则打印出完全数的表示形式,并使用for循环打印出一组递增的星号

(6)如果n不是完全数,则打印出"n不是完全数"的提示

四、实验结果:

自己运行代码截图上交。

五、实验心得:

  1. 算法是代码的核心,优秀的算法促成代码的健壮性
  2. 多思考,不要不知道就去查csdn,自己想出来的比csdn更深刻
  3. 一个问题有多种解决途径,坚持代码优化,不要局限自己的思维
  4. 如果想更快地找出数字之间的规律,计算算法,在草稿本上写会比在脑子里空想更快
  • 7
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值