Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >画“凉S”

画“凉S”
EN

Code Golf用户
提问于 2018-07-23 01:07:57
回答 4查看 47K关注 0票数 48

Introduction

我们都知道冷酷的S(也叫超人S,圣女,超级,溜冰,尖头,涂鸦等):世界各地数十亿的小学生都画了这幅画,并立刻为自己感到骄傲。如果你已经忘记或有一个完全不酷的童年,这里有一张说“酷S”的图片:

给定一个比例因子n作为输入(其中\$1\leq n\leq 20\$),输出ASCII艺术中的Cool S。

如何绘制它

来自“酷S”的维基百科页面

输出

n =1时,冷却S为:

代码语言:javascript
运行
AI代码解释
复制
   ^
  / \
 /   \
/     \
|  |  |
|  |  |
\  \  /
 \  \/
 /\  \
/  \  \
|  |  |
|  |  |
\     /
 \   /
  \ /
   v

对于不同的n值,只需将输出n增大一倍。例如,n=2:

代码语言:javascript
运行
AI代码解释
复制
     ^  
    / \
   /   \
  /     \
 /       \
/         \
|    |    |
|    |    |
|    |    |
|    |    |
\    \    /
 \    \  /
  \    \/
  /\    \
 /  \    \
/    \    \
|    |    |
|    |    |
|    |    |
|    |    |
\         /
 \       /
  \     /
   \   /
    \ /
     v

请注意,垂直段长两倍,垂直线之间的间距比垂直线宽两倍。

n=3:

代码语言:javascript
运行
AI代码解释
复制
       ^
      / \
     /   \
    /     \
   /       \
  /         \
 /           \
/             \
|      |      |
|      |      |
|      |      |
|      |      |
|      |      |
|      |      |
\      \      /
 \      \    /
  \      \  /
   \      \/
   /\      \
  /  \      \
 /    \      \
/      \      \
|      |      |
|      |      |
|      |      |
|      |      |
|      |      |
|      |      |
\             /
 \           /
  \         /
   \       /
    \     /
     \   /
      \ /
       v

注:虽然不是必需的,但您的代码也可能支持n=0:

代码语言:javascript
运行
AI代码解释
复制
 ^
/ \
\\/
/\\
\ /
 v

以字节为单位的最短程序获胜。

EN

回答 4

Code Golf用户

发布于 2018-07-23 14:29:07

Java,435个字节

函数本身需要435字节。当然还有改进的余地,“高水平”是通过分析在哪里放置哪个字符的规则(最终S是点对称的),和“低水平”,通过古典高尔夫(可能拔出另一个变量或合并两个for-loops)。但这是第一次使用这种相当不友好的语言:

代码语言:javascript
运行
AI代码解释
复制
import static java.util.Arrays.*;
import static java.lang.System.*;

public class CoolS
{
    public static void main(String[] args)
    {
        print(1);
        print(2);
        print(3);
    }
    static void print(int n){int i,r,d=3+6*n,w=3+n*4,h=6+n*10,m=n+n,v=w/2,k=h-1,j=w-1;char t[],S='/',B='\\',P='|',s[][]=new char[h][w];for(char x[]:s)fill(x,' ');s[0][v]='^';s[k][v]='v';for(i=0;i<1+m;i++){r=i+1;t=s[r];t[v-r]=S;t[v+r]=B;t=s[k-r];t[v-r]=B;t[v+r]=S;}for(i=0;i
票数 3
EN

Code Golf用户

发布于 2022-02-10 05:43:22

><>,1024字节

代码语言:javascript
运行
AI代码解释
复制
i'0'-i1+:?!v1-'0'-$a*+1v
v          <           <
>~     :1-2*3+ >1-' 'v       v                                             oa&0~~~<
 v&1:oa*2:~o'^'^?:o  <                                              >~'/'o$:v    <^        <
>>' 'o1-: ?v   v                  >@ '\'o$v v   -1o<           >          v >:?vv^ -1<     ^     <
:^         <   ~                  ~>      \:>:?v       v  >'/'v^o' '^!?:-1<:<  > ' 'o^ >'\'o:1-?v^
- vo' '<:&o'/' < <                ^^?:o' '\  \ >' '/'\'\~$^ > o:?v~1>$  :?v$^   ~!   oa  $+2$-1 < 
^1\1-:?^~'\'oao v                /        \-1<:@@~o/o1-    v^a<  >1+^v:$-2$@@:>1-' 'o:?v^      >~'\'o$v^    oa<
       >         ^     /-1   /-1 /        \        \       \:0:<                ^        <   v      -1< :v o' '<^ +1$-2  <      v    -1<
 >~&~1&         >:2*:1->'|'o1>@@:>' 'o1-:?^~@'|'o:?^~ao:  ?^~&?^                 1+2*0     >:>:?!^' 'o^ >>1-: ?^~'/'o:2-?^@@2*ao>' 'o:?^'v'o ;

以一个数字1-99作为输入并绘制Cool。程序只使用一个堆栈来存储空格数。它几乎不是高尔夫球,编码只是为了练习和乐趣:D 在网上试试!

票数 3
EN

Code Golf用户

发布于 2022-02-09 13:52:37

再生,180个字节

代码语言:javascript
运行
AI代码解释
复制
( {2*$~1}) ^\n(( {#3-1}|$1)/(  $4| )\\\n){#1+1}((\|$1\|$1\|\n){#1})(( $8|)(\\$1\\)( {#10-2}|$1)/\n){$~1+1}(( {#12-1}|$8)/(  $13|)$9\n){$~1+1}$5(( $15|)\\( {#16-2}|$4)/\n){#1+1}$1 v

将输入作为命令行参数。在这里试试!

解释

哇哦,这太长了。这其实并不是非常复杂,但是,一旦你获得了一些在再生中打高尔夫球的基本原则,它只是一遍又一遍地使用相同的技术。

代码语言:javascript
运行
AI代码解释
复制
( {2*$~1})

第1组:接受命令行参数($~1),乘以2,并添加许多空格。

代码语言:javascript
运行
AI代码解释
复制
 ^\n

用一个空格( ^ )和一个换行符来完成第一行。

代码语言:javascript
运行
AI代码解释
复制
(...){#1+1}

组2生成/ \节的一行。重复( 1组长度加1次)。它包括第3组和第4组。

代码语言:javascript
运行
AI代码解释
复制
( {#3-1}|$1)/

第3组:添加空格,比上次匹配第3组时少一个;或者,如果第3组以前没有匹配,则从第1组(arg *2空格)的内容开始。在第3组之后,添加一个正斜杠。

代码语言:javascript
运行
AI代码解释
复制
(  $4| )\\\n

第4组:添加空格,比上次匹配第4组时多两个;或者,如果第4组以前没有匹配,则从一个空格开始。在第4组之后,添加反斜杠和换行符。

代码语言:javascript
运行
AI代码解释
复制
((\|$1\|$1\|\n){#1})

第5组是整个垂直线部分,我们正在捕捉这个部分,因为我们可以在以后逐字重用它。具体而言,这是第6组的重复( 1组长度),包括:管道、第1组、管道、第1组、管道、换线。

代码语言:javascript
运行
AI代码解释
复制
(...){$~1+1}

组7生成\ \/节的一行。重复它(论点加1次)。它包含第8、第9和第10组。

代码语言:javascript
运行
AI代码解释
复制
( $8|)

第8组:添加空格,比上次匹配第8组时多一次;或者,如果第8组以前没有匹配,则以空字符串开头。

代码语言:javascript
运行
AI代码解释
复制
(\\$1\\)

第9组:反斜杠,第1组,反斜杠(捕获以供稍后重用)。

代码语言:javascript
运行
AI代码解释
复制
( {#10-2}|$1)/\n

第10组:添加空格,比上次匹配10组时少两个;或者,如果10组以前没有匹配,则从第1组的内容开始。在第10组之后,添加一个正斜杠和一个换行符。

代码语言:javascript
运行
AI代码解释
复制
(...){$~1+1}

组11生成/\ \节的一行。重复它(论点加1次)。它包括第12组和第13组。

代码语言:javascript
运行
AI代码解释
复制
( {#12-1}|$8)/

第12组:添加空格,比我们上次匹配第12组时少一个;或者,如果第12组以前没有匹配,那么从第8组的最新内容开始。在第12组之后,添加一个正斜杠。

代码语言:javascript
运行
AI代码解释
复制
(  $13|)$9\n

第13组:添加空格,比上次匹配第13组时多两次;或者,如果第13组以前没有匹配,则以空字符串开头。在第13组之后,添加第9组的内容(两个反斜杠之间有一些空格)和一个换行符。

代码语言:javascript
运行
AI代码解释
复制
$5

再次添加第5组的内容(垂直管道部分)。

代码语言:javascript
运行
AI代码解释
复制
(...){#1+1}

第14组生成\ /部分的一行。重复( 1组长度加1次)。它包括第15和第16组。

代码语言:javascript
运行
AI代码解释
复制
( $15|)\\

第15组:添加空格,比上次匹配15组时多一次;或者,如果15组以前没有匹配,则以空字符串开头。在第15组后加一个反斜杠。

代码语言:javascript
运行
AI代码解释
复制
( {#16-2}|$4)/\n

第16组:添加空格,比我们上次匹配16组时少两个;或者,如果16组以前没有匹配,那么从第4组的最新内容开始。在第16组之后,添加一个正斜杠和一个换行符。

代码语言:javascript
运行
AI代码解释
复制
$1 v

对于最后一行,添加组1、空格和v的内容。

票数 2
EN
页面原文内容由Code Golf提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://codegolf.stackexchange.com/questions/169045

复制
相关文章
更改源
System Settings –> Software & Updates –> Ubuntu Software –> Download from –> Other.. –> China –> Select Best Sever
JNingWei
2018/09/28
2K0
更改yum源为国内阿里源
因为我要查看ip,然后通过ssh工具链接。因为在vm中,无法直接粘贴命令等。 结果因为是最简安装,所以连基本的ifconfig都没有。 所以需要执行yum -y install net-tools 结果发现,报错!!!!!! 解决: 步骤: 修改文件 vi /etc/sysconfig/network-scripts/ifcfg-ent33 # 最后那个文件是网卡文件 # 打开把最后的 ONBOOT=NO 改成 YES 重启网络 service network restart yum安装net-to
无道
2019/11/13
8.7K0
Ubuntu 更改软件源
1,备份 /etc/apt/sources.list sudo cp /etc/apt/sources.list /etc/apt/sources.list.backup 2,删除原内容,改为: deb http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe
Dean0731
2020/05/11
2.6K0
ubuntu apt 软件源的更改
在ubuntu下面有一个源列表,源列表里面都是一些网站信息,每条网址就是一个源,这个地址指向的数据标识着这台服务器上有哪些软件可以用
lin_zone
2018/08/15
1.6K0
更改Python的pip安装源
修改 ~/.pip/pip.conf (没有就创建一个文件夹及文件。文件夹要加“.”,表示是隐藏文件夹)
无道
2019/11/13
1.6K0
更改Python的pip安装源
更改pip源/anaconda源:windows与linux
ke1th
2018/01/02
3.5K0
Endnote 域代码已更改
word中参考文献位置出现“域代码已更改”的批注,并且还没有办法删除,现提供如下两个可能可以的解决方法:
全栈程序员站长
2022/06/26
9010
wordpress更改固定链接后404
wordpress的固定链接对于博客的seo优化是非常重要的。因为有些默认设置并不怎么友好,所以我们可以自定义设置自己的想要的固定链接,比如自定义连接结构为:/%post_id%.html。但是往往我们更改之后会出现404页面,这是网站的伪静态出了问题。 下面是在不同环境下的不同解决方法。
SweetHunter
2020/05/10
2.1K0
WordPress更改固定链接诸项事宜
本文目录 前言 具体思路 更改固定链接 添加网站改版规则 规则选择说明 规则编写 后言 前言 记一次站点更改WordPress固定链接并提交百度站长平台链接改版。近日,由于看着 朴素 的链接不顺眼,
神无月
2018/06/22
1.8K0
yarn镜像源更改和安装注意
查看镜像源 yarn config get registry 设置镜像源 选择淘宝镜像源 yarn config set registry https://registry.npm.taobao.org 遇到的坑 vscode工具终端设置镜像源无效 解决办法:退出工具,在系统终端设置 yarn install无效 镜像源在当前目录下的.yarnrc文件下设置,只需要更改如下: registry "https://registry.npm.taobao.org"
潇洒哥和黑大帅
2019/08/19
5.7K0
debian更改源和卸载无用服务
初次使用Debian系统呢,上来我们一般要先执行这些操作,更新源或者更换源,删除无用的端口占用服务,还我们一个干净的系统,以下自己的一些使用教程,顺便记录下笔记。
无敌小菜鸟
2021/12/10
3.6K1
debian更改源和卸载无用服务
termux更改镜像源_pycharm自带python
方法2,直接替换掉pycharm环境中的默认镜像源,永久有效,而且不用每次都输入镜像源地址,
全栈程序员站长
2022/09/27
2.4K0
termux更改镜像源_pycharm自带python
win10更改pip源方法
在c:\user(或者用户)\电脑的用户名\,目录下创建一个命名为“pip”的文件夹(如:C:\Users\Administrator\pip),在该文件夹下创建一个命名为“pip.ini”的文件,在该文件中写入以下内容:
全栈程序员站长
2022/09/02
4760
pip源很慢,更改成清华的镜像地址
参考-清华大学镜像文档: https://mirrors.tuna.tsinghua.edu.cn/help/pypi/
cg错过
2020/11/16
2.1K0
WordPress更改固定链接404的解决办法
WordPress 网站建设中,固定链接设置是必不可少的,好的固定链接更美观、易用、利于用户分享和搜索引擎收录,需要注意的是,要使设置的固定链接生效的前提是你的网站环境支持伪静态。 常用的参数有 日期和名称型 /%year%/%monthnum%/%day%/%postname%/ 月份和名称型 /%year%/%monthnum%/%postname%/ 数字型 /archives/%post_id% 文章名 /%postname%/ ID+html 型 /%post_id%.html 很多站长在玩
沈唁
2018/05/24
7.5K0
限定源端口访问目标
在渗透测试时,客户需要对我们的测试IP进行加白,但是此次客户要求精确到固定端口或者小范围端口(不能1-65535),根据以前的经验,默认是加白IP和全端口,因为代理建立连接使用的端口是随机的,所以这次算是从头查找资料总结一下各种指定源端口的方式。
用户1709153
2023/05/10
1K0
树莓派3B+ 软件源更改
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/152926.html原文链接:https://javaforall.cn
全栈程序员站长
2022/09/12
6710
更改jenkins插件地址为国内镜像源
往下滑,将URL改成https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json
找Bug
2022/07/22
8.6K2
更改jenkins插件地址为国内镜像源
Jenkins(2)- 更改插件源为国内源
https://www.cnblogs.com/poloyy/category/1645399.html
小菠萝测试笔记
2020/06/09
1.7K0
Jenkins(2)- 更改插件源为国内源
点击加载更多

相似问题

Next.js无法使用动态图像url

122

使用getStaticProps()在next.js中获取未定义数据

11

使用Next.js动态url停止热重新加载

129

使用不同URL的Next.js动态路由

116

使用Sequelize动态获取数据库URL

121
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文