博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
打印有规律的图形
阅读量:5239 次
发布时间:2019-06-14

本文共 1408 字,大约阅读时间需要 4 分钟。

1,先打印个图形:

1 /*  2     *  3     *.*.  4     *..*..*..  5     *...*...*...  6 */  7 /*  8     解析:  9         1,由结构就可以看出应该设置几层循环,行是一层,星花是一层,星花后面的点又是一层 10         2,行的循环区间是【1,n】 11         3,星花的循环区间是【1,line】,即当前是第几行,就要打印几个星花 12         3,星花后点的长度是相同的,与行号相同,所以直接连续打印当前行号个点就可以了 13 */ 14 void printStardot(int n) 15 {
16 for(int line = 1;line <= n;++line) 17 {
18 for(int star = 1;star <= line;++star) 19 {
20 cout << "*"; 21 int dot = line; 22 while(--dot) 23 {
24 cout << "."; 25 } 26 } 27 cout << endl; 28 } 29 }

 

2,再打印个

  

1 /*  2    *  3   ***  4  *****  5 *******  6 */  7 /*  8 解析:  9 1,指定行的星花的个数是line*2 -1 10 2,每一行的宽度是n*2-1,即最后一行的宽度 11 3,每一行的前后空格的个数是 ((n*2 - 1) - (line*2 - 1))/2 12 */ 13 void printfTower(int n) 14 {
15 int lineMaxWidth = n*2 - 1; 16 int blankNum = 0; 17 int starNum = 0; 18 19 for(int line = 1;line <= n;++line){
20 starNum = line * 2 - 1; 21 blankNum = (lineMaxWidth - starNum)/2; 22 for(int i = 0;i < blankNum;++i){
23 cout << " "; 24 } 25 for(int i = 0;i < starNum;++i){
26 cout << "*"; 27 } 28 29 cout << endl; 30 } 31 }

 

如是而已~

这种问题,在做之前,先要找到其规律,并将变量之间的关系写出来,然后一蹴而就,直接写代码,成功率99%

转载于:https://www.cnblogs.com/Marstar/archive/2012/02/23/2364532.html

你可能感兴趣的文章
HDU 5763 Another Meaning (kmp + dp)
查看>>
常用DOS指令备忘
查看>>
SQL语句使用详解
查看>>
一起来构建前端工具链吧~(开发项目)
查看>>
Redmine2.0.3+Mysql55+RailsInstaller2.1.0+Win7成功安装记录(适用于Redmine2.3.0)
查看>>
Flexible 弹性盒子模型之CSS flex-basis 属性
查看>>
mysql(5.7)在CentOs7下的安装、配置与应用
查看>>
List Comprehension ()(一)
查看>>
Python的3个方法:静态方法(staticmethod),类方法(classmethod)和实例方法
查看>>
下载数据库包
查看>>
AngularJs的UI组件ui-Bootstrap
查看>>
HttpURLConnection、HttpClient和Session
查看>>
通过PowerShell卸载所有的SharePoint 2010 解决方案
查看>>
[LeetCode] 74. Search a 2D Matrix_Medium tag: Binary Search
查看>>
[Java in NetBeans] Lesson 14. ArrayList and Collections
查看>>
hibernate性能优化
查看>>
二叉树的下一个结点
查看>>
HDU 1527 取石子游戏(威佐夫博弈)
查看>>
单线程单元(STA)线程都应使用泵式等待基元
查看>>
Intent使用Parcelable传递对象
查看>>