zoukankan      html  css  js  c++  java
  • 洛谷P1498南蛮图腾(找规律,输出图形题技巧)

     题目链接:https://www.luogu.org/problemnew/show/P1498

    这题还是很有意思的,关键有三点:

    1.观察规律力强,能观察到基础图形宽和高的规律。

    2.要能倒着存储基础图形(到这就完成一半了)。

    3.能根据宽和高不断复制基础图形

    另外要注意并且能发现到:

    这题你只能倒着操作,倒着存倒着输出。

    因为要加宽加高,正着就没法更新操作!

     1 #include<iostream>
     2 using namespace std;
     3 const int maxn=3005;
     4 char a[maxn][maxn];
     5 int main()
     6 {
     7     ios::sync_with_stdio(false); cin.tie(0);
     8     
     9     int n;
    10     cin>>n;
    11     for(int i=0;i<maxn;i++) for(int j=0;j<maxn;j++) a[i][j]=' ';//先全部置为空格,否则空串错误还麻烦要if输出空格
    12    
    13     //1.存基础图形(n=1倒着的)
    14     a[0][0]='/'; a[0][1]='_'; a[0][2]='_'; a[0][3]='\';
    15                  a[1][1]='/'; a[1][2]='\';
    16     
    17     //2.复制右边和上边
    18     int len=4,k=1;//len表示当前图腾的宽,len/2是图腾的高;能观察但到基础的规律:宽和高多么重要!
    19     while(k<n)//不断复制 
    20     {
    21         for(int i=0;i<len/2;i++)
    22         {
    23             
    24             for(int j=0;j<len;j++)
    25             {
    26                 a[i][j+len]=a[i][j];//右边只加宽
    27                 a[i+len/2][j+len/2]=a[i][j];//上边加高加宽
    28             }
    29         }
    30         
    31         len*=2;
    32         k++;
    33     }
    34      
    35     //3.输出
    36     for(int i=(len/2)-1;i>=0;i--)//倒序输出 
    37     {   
    38         for(int j=0;j<len;j++)
    39         {
    40             cout<<a[i][j]; 
    41         }
    42         cout<<endl;
    43     }
    44     
    45     return 0;
    46 }
  • 相关阅读:
    centos 安装Phpstorm
    PostgreSQL 里面的 BIGSERIAL
    如何下载symfony
    换行
    javaScript 真经 小感 this 指向
    css3 抖动
    jq 抖动效果
    还是 js 替代 vw vh 了
    常用 Math 属性及方法
    js 判断浏览器类型及版本
  • 原文地址:https://www.cnblogs.com/redblackk/p/9931835.html
Copyright © 2011-2022 走看看