Java实现杨辉三角和斐波那契数列

Bliss ·
更新时间:2024-09-20
· 574 次阅读

杨辉三角 打印杨辉三角形(行数可以键盘录入) 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 分析:看这种图像的规律 A:任何一行的第一列和最后一列都是1 B:从第三行开始,每一个数据是它上一行的前一列和它上一行的本列之和。 步骤: A:首先定义一个二维数组。行数如果是n,我们把列数也先定义为n。 这个n的数据来自于键盘录入。 B:给这个二维数组任何一行的第一列和最后一列赋值为1 C:按照规律给其他元素赋值 从第三行开始,每一个数据是它上一行的前一列和它上一行的本列之和。 D:遍历这个二维数组。 import.java.util.Scanner; public class YangHuiSanJiao { public static void main(String[] args) { //导入键盘输入对象 Scanner sc = new Scanner(System.in); System.out.print("请输入行列:"); int a = sc.nextInt(); //动态初始化二维数组 int[][] array = new int[a][a]; //首先实现一个三角形 for (int i = 0; i <array.length ; i++) { for (int j = 0; j <= i ; j++) {////由于实现一个三角形,所以j <= i //使三角形第一列和每一行的最后一个元素为1 ,if判断 j == 0 || j == i //输入1:array[i][j] = 1; if (j == 0 || j == i ){ array[i][j] = 1; }else { //根据杨辉三角可判断出第 a 行的第 j 个数字 //等于第 a - 1 行的第 j - 1 个数字加第 a -1 行第 j 个数字 array[i][j] = array[i - 1][j -1] + array[i - 1][j]; } //输出每一行数字 System.out.print(array[i][j] + "\t"); } System.out.println();//输出一行后执行换行。 } } } 输出结果 当输入6行6列时: 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 斐波那契数列 1、1、2、3、5、8、13、21、34…… 这个数列从第三项开始,每一项都等于前两项的和 public class FeiBoNaQi{ public static void main(String[] args) { System.out.println("递归算法第20项为:" + diGui(20)); //调用递归方法 System.out.println("迭代算法第20项为:" + dieDai(20)); //调用迭代方法 } public static int dieDai(int num) { //迭代算法方法 if(num <= 0) { return 0; } if(num == 1 || num == 2) { return 1; } int first = 1,second =1,third = 0; for(int i = 3; i<= num ;i++) { third = first + second;//0 1 1 first = second; second = third; } return third; } public static int diGui(int i) { //递归算法方法 if(i <= 0) { return 0; } if(i == 1 || i == 2) {//1 1 return 1; } return diGui(i -2) + diGui(i-1);//调用自己 } } 输出结果 递归算法第20项为:6765 迭代算法第20项为:6765
作者:红鲤驴



JAVA 斐波那契数列 杨辉三角 杨辉 斐波那契

需要 登录 后方可回复, 如果你还没有账号请 注册新账号