wu


私信TA

用户名:cncfvc

访问量:216881

签 名:

读研狗没有时间刷题了~~

等  级
排  名 2
经  验 36194
参赛次数 8
文章发表 265
年  龄 25
在职情况 学生
学  校 电子科技大学
专  业 通信工程

  自我简介:

写代码 真好玩 ~

缩减到100行以内了 网上的答案都差不多这个代码量 大家可以看看
我用的是递归的方法写的




参考代码:

#include<iostream>
using namespace std;
char a[131][131];
int x;
void f(int n)
{
    if(n==0)
    {
       for(int i=(65-(4*x+5)/2);i<=(65+(4*x+5)/2);i++)
       {
         for(int j=(65-(4*x+5)/2);j<=(65+(4*x+5)/2);j++)
         {
           cout<<a[i][j];   
        }
        cout<<endl;
       }
       return;
    }
    for(int k=1;k<=n;k++)
    {
         int len=(4*k+5)/2;
         for(int i=65-len;i<=65+len;i++)
         {
           for(int j=65-len;j<=65+len;j++) 
           {
                 if(i==(65-len)||i==(65+len))
                 {
                    if(j>=(65-len+2)&&j<=(65+len-2))
                    {
                        a[i][j]='$';
                    }
                    else
                    {   
                        if(a[i][j]!='$') 
                        a[i][j]='.';
                     } 
                 }
                else if(i==(65-len+1)||(i==(65+len-1)))
                 {
                   if(j==(65-len+2)||j==(65+len-2))
                   a[i][j]='$';
                   else
                   {
                       if(a[i][j]!='$')
                       a[i][j]='.';
                     }
                 }     
                else if(i==(65-len+2)||(i==(65+len-2)))
                 {
                   if((j>=(65-len))&&(j<=(65-len+2))||(j>=(65+len)-2)&&(j<=(65+len)))
                   {
                       a[i][j]='$';
                     }
                     else
                     {
                       if(a[i][j]!='$')
                       a[i][j]='.';
                     }
                 }
                 else 
                 {  
                    if(j==(65-len)||j==(65+len))
                    {
                   	a[i][j]='$';
                    }
                   else
                   {
                       if(a[i][j]!='$')
                       a[i][j]='.';
                   }
                 }
             }
         }
    }
    f(n-1);
}
int main()
{
    int n;
    for(int i=63;i<=67;i++)
    {
        for(int j=63;j<=67;j++)
        {
            if(i==65)
            a[i][j]='$';
            if(j==65)
            a[i][j]='$';
        } 
    }
    while(cin>>n)
    {
        x=n;
        f(n);
    }
    return 0;
}


 

0.0分

0 人评分

看不懂代码?想转换其他语言的代码? 或者想问其他问题? 试试问问AI编程助手,随时响应你的问题:

编程语言转换

万能编程问答  

代码解释器

代码纠错

SQL生成与解释

  评论区