打印杨辉三角形

1、回文日期问题

2020 年春节期间,有一个特殊的日期引起了大家的注意:2020 年 2 月 2 日。因为如果将这个日期按“yyyymmdd”的格式写成一个 8 位数是 20200202,恰好是一个回文数。我们称这样的日期是回文日期。有人表示 20200202 是“千年一遇”的特殊日子。对此小明很不认同,因为不到 2 年之后就是下一个回文日期:20211202 即 2021年 12月2日。也有人表示 20200202 并不仅仅是一个回文日期,还是一个 ABABBABA 型的回文日期。对此小明也不认同,因为大约 100 年后就能遇到下一个 ABABBABA 型的回文日期:21211212即2121 年 12 月 12 日。算不上“千年一遇”,顶多算“千年两遇”。
给定一个 8 位数的日期,请你计算该日期之后下一个回文日期和下一个 ABABBABA 型的回文日期各是哪一天。
输入描述:输入包含一个八位整数 N,表示日期。
对于所有评测用例,10000101 ≤ N ≤ 89991231,保证 N 是一个合法日期的 8 位数
输出描述:输出两行,每行 1 个八位数。第一行表示下一个回文日期,第二行表示下一个 ABABBABA 型
的回文日期。

2、数组排序(升序和降序排列)

1、选择法排序

(1)选择法排序含义

选择排序(Selection Sort)是一种简单直观的排序算法。它的工作原理是每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,直到全部待排序的数据元素排完。 选择排序是不稳定的排序方法。

(2)选择法排序实现步骤

选择法排序(降序):n nn个数排序,经过n − 1 n-1n−1轮比较。
– 第1 11轮是第1 11个数跟剩下的( n − 1 ) (n-1)(n−1)个数比较,让第1 11个数成为本轮最大者,要比较( n − 1 ) (n-1)(n−1)次;
– 第2 22轮是第2 22个数跟剩下的( n − 2 ) (n-2)(n−2)个数比较,让第2 22个数成为本轮最大者,要比较( n − 2 ) (n-2)(n−2)次;
– ……
– 第( n − 1 ) (n-1)(n−1)轮是第( n − 1 ) (n-1)(n−1)个数与剩下的1 11个数比较,让第( n − 1 ) (n-1)(n−1)个数成为本轮最大者,要比较1 11次。
– 总比较次数:(n−1)(n−2)+…+2+1= n(n−1)/2=O(n *n )
在这里插入图片描述

2、冒泡法排序

(1)冒泡法排序含义

冒泡排序(Bubble Sort),是一种计算机科学领域的较简单的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越大的元素会经由交换慢慢“浮”到数列的顶端。

(2)冒泡法排序实现步骤

冒泡法排序(降序):n nn个数排序,经过n − 1 n-1n−1轮比较。
– 第1 11轮是n nn个数里相邻两个数比较,如果后者比前者大就交换,要比较( n − 1 ) (n-1)(n−1)次,本轮最小者“浮”到第n nn个位置;
– 第2 22轮是前( n − 1 ) (n-1)(n−1)个数里相邻两个数比较,如果后者比前者大就交换,要比较( n − 2 ) (n-2)(n−2)次,本轮最小者“浮”到第( n − 1 ) (n-1)(n−1)个位置;
– ……
– 第( n − 1 ) (n-1)(n−1)轮是前2 22个数里相邻两个数比较,如果后者比前者大就交换,要比较1 11次,本轮最小者“浮”到第2 22个位置;
– 总比较次数:(n−1)+(n−2)+…+2+1= n(n−1)/2

3、打印杨辉三角形

杨辉三角,是二项式系数在三角形中的一种几何排列,中国南宋数学家杨辉1261年所著的《详解九章算法》一书中出现。在欧洲,帕斯卡(1623 ~ 1662)在1654年发现这一规律,所以这个表又叫做帕斯卡三角形。帕斯卡的发现比杨辉要迟393年,比贾宪迟600年。
在这里插入图片描述

二项式定理,又称牛顿二项式定理,由艾萨克牛顿于1664-1665年提出。

(一) 编程实现

思路:用二维数组来保存杨辉三角形的元素
KaTeX parse error: Undefined control sequence: \stop at position 62: …1&4 &6 &4 &1\ \̲s̲t̲o̲p̲{matrix}
边界:a[i][0]=1,a[i][i]=1,i∈[0,n−1]a[i][0] = 1, a[i][i] =1, i\in[0, n-1]a[i][0]=1,a[i][i]=1,i∈[0,n−1]
内部:a[i][j]=a[i−1][j−1]+a[i−1][j],i∈[2,n],j∈[1,i−1]a[i][j]=a[i-1][j-1]+a[i-1]
在net.nieyourong.p02.t08包里创建Task08类
在这里插入图片描述在这里插入图片描述运行和谐,查看结果在这里插入图片描述将杨辉三角形显示为等腰三角形
在这里插入图片描述打字机程序
在这里插入图片描述运行程序效果

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值