C++编程题目打印金字塔和镂空金字塔

打印金字塔:

题目描述:

小明发现电脑可以打印出一些简单有趣的图形,比如金字塔:

  *
 ***
*****

小明希望能够过更便捷的打印出金字塔,比如输入n,就输出高度为n的金字塔。请你帮助小明实现。

输入格式:

仅一个正整数 n

输出格式:

共n行,组成如题干描述的金字塔形状。

样例输入1:

4

样例输出1:

   *
  ***
 *****
*******

约定:

n(2≤n≤40)

解答:

这一题我们利用双重for循环可以很轻松的解答

代码如下:

#include<bits/stdc++.h>
using namespace std;
int main(){
    //定义变量n表示金字塔的行数,输入n。 
	int n;
    cin>>n;
    //定义外层for循环,遍历n次。 
	for(int i=1;i<=n;i++){
        //定义内层for循环1,遍历n-i次,打印空格。 
		for(int j=1;j<=n-i;j++){
            cout<<" ";
        }
        //定义内层for循环2,遍历i*2-1次,打印星号。 
        for(int j=1;j<=i*2-1;j++){
            cout<<"*";
        }
        //打印完一层后换行。 
        cout<<endl;
    }
    //结束。 
    return 0;
}

效果:

 完成

打印镂空金字塔:

题目描述:

小明希望打印出来的金字塔能够更特别一点,比如镂空的金字塔:

     *
    * *
   * * *
  * * * *
 * * * * *
* * * * * *

小明希望能够过更便捷的打印出镂空的金字塔,比如输入n,就输出高度为n的镂空金字塔。请你帮助小明实现。

输入格式:

仅一个正整数 n(2≤n≤40)

输出格式:

共n行,组成如题干描述的镂空金字塔形状。

样例输入1:

5

样例输出1:

    *
   * *
  * * *
 * * * *
* * * * *

约定:

2≤n≤40

解答:

同理,这一题用双重for循环的解答

代码如下:

#include<bits/stdc++.h>
using namespace std;
int main(){
    //定义变量n表示金字塔的行数,输入n。
	//定义变量m,利用m来判断打空格还是星号。 
	int n,m=1;
    cin>>n;
    //定义外层for循环,遍历n次。
	for(int i=1;i<=n;i++){
        //将m赋值为1。 
		m=1; 
        //定义内层for循环1,遍历n-i次,打前面的印空格。
		for(int j=1;j<=n-i;j++){
            cout<<" ";
        }
        //定义内层for循环2,遍历i*2-1次,打印星号或空格。
		for(int j=1;j<=i*2-1;j++){
            //条件判断,如果m==1,打印星号,否则,打印空格。 
			if(m==1){
                cout<<"*";
            }
            else{
                cout<<" ";
            }
            //改变m的值,将m*-1。 
			m*=-1;
        }
        //打印完一层后换行。
		cout<<endl;
    }
    //结束。
    return 0;
}

效果:

 完成

  • 4
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值