题目:PAT (Advanced Level) Practice 1031 Hello World for U (20 point(s))
题目大意思就是给一个字符串,然后输出该字符串,使得输出的形状是U形的。具体的关系说明请看解题思路。
解题思路
首先根据题目给出的条件
n
1
{n_1}
n1表示左边的一列有几个字符,
n
2
{n_2}
n2表示最下面的一行有几个字符,
n
3
{n_3}
n3表示最右边的一列有几个字符。其中满足关系
n
1
=
n
3
<
=
m
a
x
{
k
∣
k
<
n
2
,
3
<
=
n
2
<
=
N
}
{n_1=n_3<=max\{k|k<n_2,3<=n_2<=N\}}
n1=n3<=max{k∣k<n2,3<=n2<=N},
n
1
+
n
2
+
n
3
−
2
=
N
{n_1+n_2+n_3-2=N}
n1+n2+n3−2=N
根据上面满足的关系式,可以推出
n
2
=
l
e
n
+
2
−
2
∗
n
1
{n_2=len+2-2*n_1}
n2=len+2−2∗n1;由
n
2
>
=
n
1
=
>
{n_2>=n1=>}
n2>=n1=>
l
e
n
+
2
−
2
∗
n
1
>
=
n
1
=
>
{len+2-2*n_1>=n1=>}
len+2−2∗n1>=n1=>
n
1
<
=
(
l
e
n
+
2
)
/
3
{n_1<=(len+2)/3}
n1<=(len+2)/3