AcWing 1515:U 形 Hello World

【题目来源】
https://www.acwing.com/problem/content/1517/

【题目描述】
给定一个长度为 N 的字符串,请你将它以 U 形输出。
例如,helloworld 可以输出为:
h  d
e  l
l  r
lowo
也就是说,必须按照原始顺序输出字符,左垂直线自上而下共有 n1 个字符,底部行从左到右共有 n2 个字符,右垂直线自下而上共有 n3 个字符。
另外,必须满足 n1=n3=max{k|
k≤n2对于所有3≤n2≤N} 以及 n1+n2+n3−2=N
对于 helloworld,n1=n2=n3=4。

【输入格式】
包含一个长度不少于 5 且不超过
80 的字符串,字符串内不含空格。

【输出格式】
输出转化为 U 形后的图案。

【输入样例】
helloworld!

【输出样例】
h   !
e   d
l   l
lowor

【算法分析】
● 由已知 n1+n2+n3−2=n,n1=n3,可得
n+2=2∗n1+n2,其中 n2>=n1
● 由 3≤n2≤n,故可对 n+2 进行模 3 操作,则有:
(1)若 (n+2)%3=0,则 n2=n1,故此条件下可得
n+2=3*n1
(2)若 (n+2)%3=1,则 n2=n1+1,故此条件下可得
n+2=3*n1+1
(3)若 (n+2)%3=2,则 n2=n1+2,故此条件下可得
n+2=3*n1+2
● 综上,可得:
(1)在 C++ 中 “
/” 的向下取整语境下,及上文中“n+2=3*n1、n+2=3*n1+1、n+2=3*n1+2”,可得 n1=(n+2)/3
(2)在 C++ 中 “/” 的向下取整语境下,及上文中“n2=n1、n2=n1+1、n2=n1+2”,可得 n2=n1+(n+2)%3
(3)代码中各个循环边界的示意图如下所示:

【算法代码】

#include <bits/stdc++.h>
using namespace std;

const int maxn=85;
char g[maxn][maxn];

int main() {
    string s;
    cin>>s;
    int n=s.size();
    int n1=(n+2)/3;
    int n2=n1+(n+2)%3;
    int n3=n1;

    int cnt=0;
    for(int i=0; i<n1; i++) g[i][0]=s[cnt++];
    for(int i=1; i<n2; i++) g[n1-1][i]=s[cnt++];
    for(int i=n1-2; i>=0; i--) g[i][n2-1]=s[cnt++];

    for(int i=0; i<n1; i++) {
        for(int j=0; j<n2; j++) {
            if(g[i][j]) cout<<g[i][j];
            else cout<<" ";
        }
        cout<<endl;
    }

    return 0;
}

/*
in:
helloworld!

out:
h   !
e   d
l   l
lowor
*/





【参考文献】
https://www.acwing.com/solution/content/13778/
https://www.acwing.com/problem/content/solution/1517/1/

  • 7
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Hello World网页制作是HTML编程的入门级别。以下是制作Hello World网页的步骤: 1. 打开文本编辑器,如记事本或Sublime Text等。 2. 在文本编辑器中输入以下代码: <!DOCTYPE html> <html> <head> <title>Hello World</title> </head> <body> <h1>Hello World!</h1> </body> </html> 3. 保存文件,文件名为“helloworld.html”,确保文件类型为“所有文件”。 4. 在浏览器中打开“helloworld.html”文件,即可看到“Hello World!”的标题。 这个简单的网页由HTML标记组成,其中包括文档类型声明、HTML标签、标题标签和正文标签。HTML标记告诉浏览器如何显示网 ### 回答2: HTML是超文本标记语言的英文缩写,是用来制作网页的一门标记语言。在网页制作中,HTML主要用来编写网页的内容和结构,决定网页中各个元素的排列和位置。 制作HTML网页的第一步,是编写一个简单的“hello world”网页。这个网页的基本结构如下所示: <!DOCTYPE html> <html> <head> <title>我的第一个网页</title> </head> <body> <h1>Hello World!</h1> </body> </html> 该网页有三个部分组成: 1.头部(head):用于描述文档的基本属性,包括文档类型声明、字符编码、文档title等。文档title会在浏览器的标题栏中显示。 2.主体(body):用于展示文档内容。在body中,可以添加文本、图片、链接、表格等各种元素。 3.文本(text):在该网页中,<h1>标签表示网页的标题,这里的标题是“Hello World!”。 当我们在编辑器中输入以上代码,保存为一个html文件,使用浏览器打开它,就可以看到“Hello World!”这个简单的网页了。 尽管这只是一个简单的网页,但它展示了HTML的基本属性,如何在HTML中描述文档的结构和展示内容,为之后学习其他更加复杂的HTML网页制作奠定了基础。 ### 回答3: HTML 是一种标记语言,是网页制作的基础。在制作网页时,首先需要创建一个 HTML 文件,并在文件中编写 HTML 代码。最简单的 HTML 代码就是 Hello World 网页。下面我来介绍一下如何制作这个网页。 首先,我们需要创建一个 HTML 文件。可以使用文本编辑器(如 Notepad++、Sublime Text 等)来创建 HTML 文件。以 Notepad++ 为例,创建一个新文本文件,将文件后缀名改为 .html,这样我们就创建了一个 HTML 文件。接下来,我们需要在 HTML 文件中编写代码。 HTML 代码由标签和内容组成。标签用来标记 HTML 文档中的不同部分,内容则是标签所包含的文本、图片、链接等等。以 Hello World 网页为例,我们可以编写以下代码: ``` <!DOCTYPE html> <!-- 文档类型声明 --> <html> <!-- html 根标签 --> <head> <!-- head 标签 --> <title>Hello World</title> <!-- title 标签,设置网页标题 --> </head> <body> <!-- body 标签,设置网页的 body 部分 --> <h1>Hello World</h1> <!-- h1 标题标签,设置网页主标题 --> <p>This is my first HTML web page.</p> <!-- p 标签,设置网页主要内容 --> </body> </html> ``` 上述代码中,第一行 ``<!DOCTYPE html>`` 是文档类型声明,告诉浏览器这是一个 HTML5 文档。接下来的 ``<html>`` 标签是 HTML 文档的根标签,所有其他标签都嵌套在它内部。``<head>`` 标签用于设置网页的头部内容,例如网页标题、样式表等等。标签内部的 ``<title>`` 标签用于设置网页标题。``<body>`` 标签用于设置网页的 body 部分,即网页中显示的内容。``<h1>`` 标签用于设置网页主标题,“Hello World” 就是我们的主标题。``<p>`` 标签是段落标签,用于设置网页主要内容。 将上述代码保存为 .html 后,我们就可以用浏览器打开它,看到我们刚刚编写的 Hello World 网页了。这是一个非常简单的网页,但它包含了 HTML 的基础标签和使用方法,对于初学者来说是非常有帮助的。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值