• 洛谷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 }
  • 相关阅读:
    麦卡姆轮运动原理
    ESP32开发(2)esp32-cam采集图像
    ESP32开发(1)环境配置
    Cesium学习笔记2-3:视频投影
    Cesium中实时显示经纬度及视角高
    Cesium学习笔记2-5:内部使用阳历扩展
    Cesium学习笔记2-4:外部扩展
    Cesium学习笔记2-4:更多官方示例
    win10通过wifi分享上网
    更换源地址
  • 原文地址:https://www.cnblogs.com/redblackk/p/9931835.html
Copyright © 2020-2023  润新知