原题链接:[编程入门]打印图案
解题思路:
我把金字塔外面的空格用零表示,金字塔内部的空格用一表示,以第三个金字塔为例 观察图像可以发现除了最后一行和第一行之外,其他的金字塔中间都是空白的,整体是对称的,所以是有规律的 规律如下: 00* 0*1* ***** 000* 00*1* 0*111* ******* 此行7个* 第1行 0000* 第2行 000*1* 第3行 00*111* 第4行 0*11111* 第5行 ********* 此行9个* 最后面一行最简单直接输出(2*行数-1 )个或者[2*(行数-1) + 1]个*就可以了 第一行也可以直接输出,但是我感觉除了最后面一行外,它们当一个整体会更加好操作 然后我分别找出零和一的规律,把零和一的规律写出来,然后再把零和一的规律结合在一起,使用同一个外循环 至于它们的*,这个就非常容易解决了,第一个*跟随零,第二个*跟随一就行 然后改1和0为一个空格
注意事项:
难点:把外面的空格与中间空格的规律结合起来,使用同一个外循环
参考代码:
#include<bits/stdc++.h> using namespace std ; int main( ) { int n = 0 ; cin >> n ; int num = 2*(n-1) + 1 , nu = n - 1 ; for ( int i = nu ; i > 0 ; i -- ) { for ( int j = i ; j > 0 ; j -- ) { cout << "0" ; } cout << "*" ; int p = nu-i ; for ( int j = 2*p - 1 ; j > 0 ; j -- ) { cout << "1" ; } if ( p != 0 ) cout << "*" ; cout << endl ; } for ( int i = 0 ; i < num ; i ++ ) { cout << "*" ; } cout << endl ; return 0 ; }
0.0分
0 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复