解题思路:
最开始我是想暴力的,然鹅....
写到900+的行数,全是三角形......我就已经吐血了....最主要的是这样写还不对....题目挖坑,“\\”双斜杠,才可以正常的表示一个斜杠,因为'\'本身表示一种特殊的控制符表示,比如'\n'这就是换行符,所以语法规定"\\"才能表示为'\'的显示....真的是要人吐血啊。
中毒....下次各位见到画图题,数据上了10,千万不要像我这样暴力了。。。。
说回来正常的思路:
看过一些算法书的同学可能会知道,我们其实可以借助一个常量字符串的格式来将我们所需要格式输出的某一个东西(就是这个东西重复出现),进行预设。
比如这题就可以这样对金字塔的每一个三角形进行预设:
const char rec[3]="/\\"; //"\"需要使用双斜杠才能表示
然后照常按照我们给一些矩阵画图的思路,进行空格的填充,同时换行的填充,以及三角的填充,具体的方式各位可以直接看代码。
参考代码:
#include<bits/stdc++.h> #define hh ios::sync_with_stdio(false),cin.tie(0),cout.tie(0); #pragma GCC optimize(2) using namespace std; int main(){ hh; const char rec[3]="/\\"; int n; while(cin>>n){ int temp=n,ans=0; while(n>0&&ans<=temp){ for(int i=0;i<n-1;i++){ cout<<' '; } for(int i=0;i<ans+1;i++){ cout<<rec; } cout<<endl; n--; ans++; } } return 0; }
PS:这里用到了一个输入输出流优化以及开启了O2优化,这是个人用喜欢使用的竞赛模板...
//#define hh ios::sync_with_stdio(false),cin.tie(0),cout.tie(0); #pragma GCC optimize(2)
这两句话看不懂的话,直接删掉就好了...反正数据量小,没啥区别的
PPS:我期待一个不正常的方法
0.0分
2 人评分
2005年春浙江省计算机等级考试二级C 编程题(3) (C语言代码)浏览:417 |
【绝对值排序】 (C语言代码)浏览:832 |
【出圈】 (C语言代码)浏览:590 |
C语言程序设计教程(第三版)课后习题8.1 (C语言代码)浏览:1292 |
简单的a+b (C语言代码)浏览:661 |
C语言程序设计教程(第三版)课后习题6.2 (C语言代码)浏览:716 |
C语言程序设计教程(第三版)课后习题9.6 (C语言代码)浏览:388 |
printf基础练习2 (C语言代码)浏览:653 |
C语言程序设计教程(第三版)课后习题1.5 (C语言代码)浏览:438 |
局部变量作函数返回值的问题浏览:1028 |