打印杨辉三角形的前10行。

打印杨辉三角形的前10行。杨辉三角形如下图:

1                      1

1   1                   1  1

1   2   1                1  2  1

1   3   3   1             1  3  3  1

1   4   6   4   1           1  4  6  4  1

[图5-1]                  [图5-2]

  

【问题分析】观察图5-1,大家不容易找到规律,但是如果将它转化为图5-2,不难发现杨辉三角形其实就是一个二维表的小三角形部分,假设通过二维数组yh存储,每行首尾元素为1,且其中任意一个非首位元素yh[i][j]的值其实就是yh[i-1][j-1]与yh[i-1][j]的和,另外每一行的元素个数刚好等于行数。有了数组元素的值,要打印杨辉三角形,只需要控制好输出起始位置就行了。

 

#include<iostream>
#include<iomanip>
using namespace std;
int a[11][11];
int main()
{
int i,j;
a[1][1]=1;
for(int i=2;i<=10;++i)
{
a[i][1]=1;a[i][i]=1;
for(int j=2;j<=i-1;++j)
a[i][j]=a[i-1][j-1]+a[i-1][j];
}
for(int i=1;i<=10;i++)
{
if(i!=10) cout<<setw(30-3*i)<<" ";
for(int j=1;j<=i;j++)
cout<<setw(6)<<a[i][j];
cout<<endl;
}
return 0;
}

时间: 2024-08-10 16:59:15

打印杨辉三角形的前10行。的相关文章

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

从键盘上输入一个正整数n,请按照以下五行杨辉三角形的显示方式, 输出杨辉三角形的前n行。请采用循环控制语句来实现。 (三角形腰上的数为1,其他位置的数为其上 一行相邻两个数之和。)

package com.homework.zw;//此题没有太大难度,不再写注释import java.util.Scanner;public class work4 { public static void main(String[] args)  {   Scanner sc = new Scanner(System.in);         System.out.println("请输入一个正整数n");         int n = sc.nextInt();       

编程输出杨辉三角的前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][]

打印杨辉三角形(Pascal&#39;s triangle)——利用队列

打印杨辉三角形(Pascal's triangle)--利用队列 1. 杨辉三角的概念 杨辉三角,又称贾宪三角形,帕斯卡三角形,是二项式系数在三角形中的一种几何排列. 将二项式(a+b)i展开,其系数构成杨辉三角形(国外称Pascal's triangle),按行将展开式系数的前n行打印出来.从三角形的形状可知,除第1行以外,在打印第i行时,用到上一行(第i-1行)的数据,在打印第i+1行时,又用到第i行的数据. 注:在欧洲,这个表叫做帕斯卡三角形.帕斯卡(1623--1662)是在1654年发

linux 列出内存/cpu使用率前10的进程

内存使用率前10行 # ps aux | head -1;ps aux | grep -v PID | sort -rn -k +4 | head CPU使用率前10行 # ps aux | head -1;ps aux | grep -v PID | sort -rn -k +3 | head ps aux | head -1 是 先显示出个字段的名称 grep -v PID 去除字段名称 sort -rn -k +4按照第4列排序 head 默认取前10行 原文地址:https://www.

SQL学习(三)Select语句:返回前多少行数据

在实际工作中,我们可能根据某种排序后,只需要显示前多少条数据,此时就需要根据不同的数据库,使用不同的关键字 一.SQL Server/Access select top 数量/百分比 from table 如: select top 10 from ticket---返回ticket表中的前10行数据 select top 10 from ticket where name='测试'---返回ticket表中,name为测试的前10行数据 select top 10 from ticket or

返回前多少行数据

在实际工作中,我们可能根据某种排序后,只需要显示前多少条数据,此时就需要根据不同的数据库,使用不同的关键字 一.SQL Server/Access select top 数量/百分比 from table 如: select top 10 from ticket---返回ticket表中的前10行数据 select top 10 from ticket where name='测试'---返回ticket表中,name为测试的前10行数据 select top 10 from ticket or

java实现打印杨辉三角形(帕斯卡三角形),打印10行

/**  * 打印杨辉三角形(帕斯卡三角形),打印10行  *  */ public class Yanghuisanjiao {     public static void main(String[] args) {         int [][] a = new int[11][11];         for (int i = 0 ; i < 10 ; i++) {             a[i][0] = 1;             a[i][i] = 1;         }

打印10行10列★

//打印方形,每行打印10个“★”,打印10行, //使用循环嵌套,不允许定义内容为“AAAAAAAAAA”的变量: for (int i = 1; i <= 10;i++ ) { for (int k = 1; k <= 10;k++ ) { Console.Write("★"); } Console.WriteLine(); } Console.ReadLine();