java例题_33 等腰输出杨辉三角

 1 /*33 【程序 33 杨辉三角】
 2 题目:打印出杨辉三角形(要求打印出 10 行如下图)
 3 程序分析:
 4      1
 5     1 1
 6    1 2 1
 7   1 3 3 1
 8  1 4 6 4 1
 9 1 5 10 10 5 1
10 */
11
12 /*分析:
13  * ======================
14  * 杨辉三角特点:
15  * 1.每个数等于它上方两数之和。
16  * 2.每行数字左右对称,由1开始逐渐变大。
17  * 3.第n行的数字有n项。
18  * =======================
19 ==================================规律===规律====规律==================================
20  * 经过观察发现:
21     1
22     1 1
23     1 2 1
24     1 3 3 1
25     1 4 6 4 1
26     1 5 10 10 5 1
27     第一行a1[0]=1
28     第二行a2[0]=1,a2[1]=1;
29     第三行a3[0]=1,a3[1]=a2[0]+a2[1],a3[2]=1;
30     第四行a4[0]=1,a4[1]=a3[0]+a3[1],a4[2]=a3[1]+a3[2],a4[3]=1;
31     ....
32     第n行an[0]=1,an[1]=a(n-1)[0]+a(n-1)[1],an[2]=a(n-1)[1]+a(n-1)[2],an[3]=a(n-1)[2]+a(n-1)[3]...
33         ...an[n-2]=a(n-1)[n-3]+a(n-1)[n-2],an[n-1]=1;
34
35     考虑用for循环输出10行!还有一个for循环来改变数组的值
36 直接用二维数组输出!!!!!!!
37 * ==========输出规律=========
38 * 每行的第一个数字前面有n-i个空格,即第一数字输出之前要输出n-i个空格
39 * 没输出一个数字,再输出一个空格
40 *
41 */
42
43 package homework;
44
45 public class _33 {
46
47     public static void main(String[] args) {
48         // 声明一个10行10列的二维数组
49         int n = 10;
50         int[][] a = new int[n][n]; // 10行10列数组
51         //第一次循环控制行数
52         for (int i = 0; i < n; i++) {
53             //第二层循环控制列数
54             for (int j = 0; j <= i; j++) {
55                 //每行的第一列值都为1,每行要输出的最后一个数(即行数等于列数时)也为1
56                 if (j == 0 || j == i) {
57                     a[i][j] = 1;
58                 }
59                 //其余情况的值都等于它上方两数之和
60                 else {
61                     a[i][j] = a[i - 1][j - 1] + a[i - 1][j];
62                 }
63 //              System.out.printf("%d\t",a[i][j]);  //输出值
64             }
65 //          System.out.println();   //换行
66         }
67
68         // 使输出的结果为等腰三角形,两层for循环
69         //  第一层控制行输出
70         for (int i = 0; i < n; i++) {
71             //第二层的第一部分控制输出空格
72             for (int j = 0; j <= n-i; j++) {
73                 System.out.print(" ");
74             }
75             //第二层的第二部分控制输出数组值+“ ”
76             for (int k = 0; k <= i; k++) {
77                 System.out.print(a[i][k] + " ");
78             }
79             System.out.println(); //换行
80         }
81
82     }
83 }

原文地址:https://www.cnblogs.com/scwyqin/p/12333622.html

时间: 2024-10-29 02:52:54

java例题_33 等腰输出杨辉三角的相关文章

Java编程-输出杨辉三角前10行

public class YanghuiTriangle { public static void main(String[] args) { int triangle[][]=new int[10][];// 创建二维数组 // 遍历二维数组的第一层 for (int i = 0; i < triangle.length; i++) { triangle[i]=new int[i+1];// 初始化第二层数组的大小 // 遍历第二层数组 for(int j=0;j<=i;j++){ if(i

输出杨辉三角(C++和 JAVA版 )

C++版本: #include <iostream> using namespace std; void main() { int n=10; while(n!=-1) { cout<<"请输入 杨辉三角 行数:"; cin>>n; int **a = new int* [n]; for(int m = 0; m < n; m++) { a[m] = new int [n]; } for(int i=0;i<n;i++) { for(in

C语言实现在屏幕上输出杨辉三角

★在屏幕上打印杨辉三角 #include<stdio.h> int main() { int i = 0, j = 0, num = 0,k = 0; printf("请输入要输出的杨辉三角的行数:"); scanf("%d", &num); for (i = 1; i <= num; i++) { k = 1;         //每行须以1开头,所以将K定义在第二层循环之外 for (j = 1; j <= i; j++) { p

输出杨辉三角

输出下列图形(空格用_表示) ____* ___*** __***** _******* ******* 分析 行数   空格数  星星数   一共有多数 一        4         1             5 二        3         3             6 三        2         5             7 四        1         7            8 五        0          9           

c实现任意行输出杨辉三角

#include<stdio.h> #include<stdlib.h> int** fmalloc(int n){ int** array; int i; array = (int** )malloc(sizeof(int*) * n); for(i=0; i<n; ++i){ array[i] = (int*)malloc(sizeof(int*) * (i+1)); } return array; } int main() { int n; int i,j; print

利用yield关键字输出杨辉三角

最近学习了下python,发现里面也有yield的用法,本来对C#里的yield不甚了解,但是通过学习python,对于C#的yield理解更深了!! 不多说了,小学生水平的表达能力伤不起.... 直接上代码: using System; using System.Collections; using System.Collections.Generic; using System.Linq; using System.Text; namespace ConsoleApplication2 {

编程输出杨辉三角的前10行---多维数组的应用---java实现

import java.util.Scanner;public class yanghui{ public static void main(String[] args){  Scanner sc=new Scanner(System.in);  System.out.println("\nPlease enter the number of Yang Hui triangle rows:");  int n=sc.nextInt();  int [][]a=new int [n][]

用一维数组输出杨辉三角

总结心得: 在刚开始编程过程中,对一位数组的使用不是太过熟练,在复习以前知识和过问同学渐渐掌握了,在编写过程中如何输出等腰的三角形遇到了问题,在过问同学后也掌握了,总而言之,此次实验受益匪浅. 原文地址:https://www.cnblogs.com/myb1128/p/10633942.html

编写程序输出杨辉三角

#include<stdio.h> int main() {    int i,j;    int a[100][100];    int row;    printf("row=");    scanf("%d",&row);    for(i=1;i<=100;i++)    {       a[i][0]=1;       a[i][i]=1;    }    for(i=2;i<=100;i++)    {       for