C++输出上三角/下三角/菱形/杨辉三角形

本篇文章是对C++中输出上三角/下三角/菱形/杨辉三角形的示例代码进行了详细的分析介绍,需要的朋友参考下
 

1.输出上三角形
第一行1个星,第二行3个星,第三行5个星,第四行7个星,第五行9个星。
分析:三角形的形状由输出的空白和星组成,通过分析每一行输出几个空格,几个星,就可完成输出三角形的工作。

复制代码 代码如下:

#include<iostream>
using namespace std;
int main(){
 int i=0,j=0;
 for(i=1;i<=5;i++){//控制行数
     for(j=1;j<=(5-i);j++){
      cout<<" ";//控制输出空格
     }
     for(j=1;j<=(2*i-1);j++){
      cout<<"*";//控制输出*
     }
     cout<<endl;//每一行进行换行
 }
 return 0;
}

2.输出下三角
第一行9个星,第二行7个星,第三行5个星,第四行3个星,第五行1个星。
分析:该图形与上三角图形相反,思路类似。

复制代码 代码如下:

#include<iostream>
using namespace std;
int main(){
 int i=0,j=0;
 for(i=1;i<=5;i++){//控制行数
  for(j=1;j<=(i-1);j++){
   cout<<" ";
  }
  for(j=1;j<=(9-2*(i-1));j++){
   cout<<"*";
  }
  cout<<endl;
 }
}

3.输出菱形
菱形其实就是由一个上三角和一个下三角组成。可以通过两次for循环输出

复制代码 代码如下:

#include<iostream>
using namespace std;
int main(){
 int i=0,j=0;
 for(i=1;i<=5;i++){
  cout<<"t";
  for(j=1;j<=(5-i);j++){
   cout<<" ";
  }
  for(j=1;j<=(2*(i-1)+1);j++){
   cout<<"*";
  }
  cout<<endl;
 }
 for(i=4;i>=1;i--){
  cout<<"t";
  for(j=1;j<=(5-i);j++){
   cout<<" ";
  }
  for(j=1;j<=(2*(i-1)+1);j++){
   cout<<"*";
  }
  cout<<endl;
 }
 cout<<endl;
}

4.输出杨辉三角

                  1                  
                1   1                
              1   2   1              
            1   3   3   1            
          1   4   6   4   1          
        1   5   10   10   5   1        
      1   6   15   20   15   6   1      
    1   7   21   35   35   21   7   1    
  1   8   28   56   70   56   28   8   1  
1   9   36   84   126   126   84   36   9   1

杨辉三角形最显著的特点就是每个数等于它上方两数之和。这也就是程序编写的原理

复制代码 代码如下:

#include<iostream>
using namespace std;
int main(){
 int i,j;
 int a[10][21];
 for(i=0;i<10;i++){
  for(j=0;j<21;j++){
   a[i][j]=0;
  }
 }//完成数组的初始化
 a[0][10]=1;
    for(i=1;i<10;i++){
     for(j=(10-i);j<=(10+i);j=j+2){//10+i=(10-i)+2*i+01-1
      a[i][j]=a[i-1][j-1]+a[i-1][j+1];
     }
    }
    for(i=0;i<10;i++){
     cout<<"t";
     for(j=0;j<21;j++){
     if(a[i][j]==0){
       cout<<"  ";
     }else{
      cout<<a[i][j];
     }
     }
     cout<<endl;
    }
    cout<<endl;
}

时间: 2025-01-21 07:57:42

C++输出上三角/下三角/菱形/杨辉三角形的相关文章

杨辉三角(下三角或者等腰三角)

//杨辉三角(下三角或者等腰三角)#include <stdio.h>int fun(int i,int j){ if(i==j||1==j) return 1; else return fun(i-1,j-1)+fun(i-1,j);} int main(){ int n,i,k,j; printf("Input n:"); scanf("%d",&n); for(i=1;i<=n;i++)//第一行时i=1 { for(k=1;k<

C++输出上三角/下三角/菱形/杨辉三角形(实现代码)_C 语言

1.输出上三角形第一行1个星,第二行3个星,第三行5个星,第四行7个星,第五行9个星.分析:三角形的形状由输出的空白和星组成,通过分析每一行输出几个空格,几个星,就可完成输出三角形的工作. 复制代码 代码如下: #include<iostream>using namespace std;int main(){ int i=0,j=0; for(i=1;i<=5;i++){//控制行数      for(j=1;j<=(5-i);j++){      cout<<&quo

backsolve &amp; fowardsolve 解特殊方程 (上三角或下三角系数为0的方程)

我们知道用solve可以解y %*% x == b的方程 http://blog.163.com/digoal@126/blog/static/163877040201531311282613/ 本文要讲的是一种特殊方程的另一种解法, 这种方程的特点是系数矩阵呈现上三角或下三角特征. 这种方程可以使用backsolve&fowardsolve函数来解. 函数参数 : > args(backsolve) function (r, x, k = ncol(r), upper.tri = TRUE

android控件-为什么运行时,Spinner控件无法进行下拉选择,控件上也没有三角符?

问题描述 为什么运行时,Spinner控件无法进行下拉选择,控件上也没有三角符? 列表高度"> 解决方案 http://vcsos.com/Article/pageSource/140804/20140804120721.shtml 解决方案二: android--Spinner(菜单下拉控件) 解决方案三: 新建一个工程,重新写了一遍就好了

九九乘法表(下三角)

//九九乘法表(下三角) #include<stdio.h> int main() { int row,col; for(row=1;row<=9;row++) { for(col=1;col<=row;col++) printf("-*%d=-",row,col,col*row); printf("\n"); } return 0; } 注意:大括号所在位置

日志-怎么控制,不让linux下debug信息输出到Tomcat下log/catalina.out

问题描述 怎么控制,不让linux下debug信息输出到Tomcat下log/catalina.out 最近维护服务器的时候,发现上传上去的文件大小全部为0, 一查才知道磁盘已经被占满了,排查下来发现tomcat下log/catalina.out文件 竟然达到惊人的10G,观察里面的信息,几乎全部是项目的debug信息, 而项目log4j的配置输出地址日志信息正常,等于是日志信息正常打印到指定位置之后, 又重复打印到catalina.out. 搜了下这个问题,几乎全是如何分割或清空catalin

剑指offer系列之二十一:从上到下打印二叉树

题目描述 从上往下打印出二叉树的每个节点,同层节点从左至右打印. 此题实际上就是二叉树层序遍历方法的考察,具体思路是:使用一个集合(或者栈,但是相对来说使用栈操作会方便一些)来保存遍历的节点,还需要创建一个集合用来保存最后输出的遍历序列.从根节点开始遍历,首先把该节点放入集合中,并输出其值,之后便从集合中移除该节点,不过在此之前需要判断该节点是否有左右孩子,如果有左右(满足其一就可以)孩子,便把左右孩子放入集合中.每次输出值后便把节点具体的值放入遍历集合中,作为最后的返回结果. 下面是基于这种思

[程序员面试题精选100题]12.从上往下遍历二叉树

[题目] 输入一颗二元树,从上往下按层打印树的每个结点,同一层中按照从左往右的顺序打印. 例如输入         8      /      \     6     10    /   \     /  \   5  7   9  11 输出8   6   10   5   7   9   11 [分析] 这曾是微软的一道面试题.这道题实质上是要求遍历一棵二元树,只不过不是我们熟悉的前序.中序或者后序遍历. 我们从树的根结点开始分析.自然先应该打印根结点8,同时为了下次能够打印8的两个子结点,

如何在ECS上搭建Oracle?Oracle云上云下6种架构全解析

在2016杭州云栖大会第二日,袋鼠云联合创始人丁原在飞天服务专场分享了<EasyDB for Oracle--基于阿里云的Oracle最佳实践>.他主要从云上Oracle可行性分析.云上Oracle数据库架构.EasyDB for Oracle三个方面进行了分享,详细介绍了Oracle传统架构.云下(传统)经典数据库架构.Oracle云上4种架构的实现和优缺点. 以下内容根据演讲PPT及现场分享整理. 可行性分析 数据库关注点 不管是线上还是线下,数据库应该关注什么?第一,性能好坏.第二,数据