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

1.输出上三角形

第一行1个星,第二行3个星,第三行5个星,第四行7个星,第五行9个星。

分析:三角形的形状由输出的空白和星组成,通过分析每一行输出几个空格,几个星,就可完成输出三角形的工作。

 

[cpp][/cpp] view plaincopy

  1. #include<iostream>
  2. using namespace std;
  3. int main(){
  4.     int i=0,j=0;
  5.     for(i=1;i<=5;i++){//控制行数
  6.         for(j=1;j<=(5-i);j++){
  7.             cout<<” “;//控制输出空格
  8.         }
  9.         for(j=1;j<=(2*i-1);j++){
  10.             cout<<“*”;//控制输出*
  11.         }
  12.         cout<<endl;//每一行进行换行
  13.     }
  14.     return 0;
  15. }

 

2.输出下三角

 

 

 

 

第一行9个星,第二行7个星,第三行5个星,第四行3个星,第五行1个星。

分析:该图形与上三角图形相反,思路类似。

 

[cpp][/cpp] view plaincopy

  1. #include<iostream>
  2. using namespace std;
  3. int main(){
  4.     int i=0,j=0;
  5.     for(i=1;i<=5;i++){//控制行数
  6.         for(j=1;j<=(i-1);j++){
  7.             cout<<” “;
  8.         }
  9.         for(j=1;j<=(9-2*(i-1));j++){
  10.             cout<<“*”;
  11.         }
  12.         cout<<endl;
  13.     }
  14. }

 

3.输出菱形

 

 

 

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

[cpp][/cpp] view plaincopy

  1. #include<iostream>
  2. using namespace std;
  3. int main(){
  4.     int i=0,j=0;
  5.     for(i=1;i<=5;i++){
  6.         cout<<“\t”;
  7.         for(j=1;j<=(5-i);j++){
  8.             cout<<” “;
  9.         }
  10.         for(j=1;j<=(2*(i-1)+1);j++){
  11.             cout<<“*”;
  12.         }
  13.         cout<<endl;
  14.     }
  15.     for(i=4;i>=1;i–){
  16.         cout<<“\t”;
  17.         for(j=1;j<=(5-i);j++){
  18.             cout<<” “;
  19.         }
  20.         for(j=1;j<=(2*(i-1)+1);j++){
  21.             cout<<“*”;
  22.         }
  23.         cout<<endl;
  24.     }
  25.     cout<<endl;
  26. }

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

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

 

[cpp][/cpp] view plaincopy

  1. #include<iostream>
  2. using namespace std;
  3. int main(){
  4.     int i,j;
  5.     int a[10][21];
  6.     for(i=0;i<10;i++){
  7.         for(j=0;j<21;j++){
  8.             a[i][j]=0;
  9.         }
  10.     }//完成数组的初始化
  11.     a[0][10]=1;
  12.     for(i=1;i<10;i++){
  13.         for(j=(10-i);j<=(10+i);j=j+2){//10+i=(10-i)+2*i+01-1
  14.             a[i][j]=a[i-1][j-1]+a[i-1][j+1];
  15.         }
  16.     }
  17.     for(i=0;i<10;i++){
  18.         cout<<“\t”;
  19.         for(j=0;j<21;j++){
  20.         if(a[i][j]==0){
  21.             cout<<”  “;
  22.         }else{
  23.             cout<<a[i][j];
  24.         }
  25.         }
  26.         cout<<endl;
  27.     }
  28.     cout<<endl;
  29. }

标签