「Mac玩转仓颉内测版36」PTA刷题篇15 - L1-015 跟奥巴马一起画方块

2024-11-26 18:59:48
24次阅读
0个评论
最后修改时间:2024-12-01 17:55:59

本篇将讲解PTA平台上的题目 L1-015 跟奥巴马一起画方块,通过字符的重复输出,进一步熟悉Cangjie编程语言中的循环控制与格式化输出。题目背景介绍了美国前总统奥巴马通过编程画出了一个简单的图形,现在让我们也来画一个类似的方块图形。


关键词
  • PTA刷题
  • 图形输出
  • 循环控制
  • 格式化输出
  • Cangjie语言

一、L1-015 跟奥巴马一起画方块

题目描述:给定一个正整数 N(代表正方形的边长)以及一个字符 C(代表边的符号),使用字符 C 输出一个高度为 (N + 1) / 2(四舍五入取整),宽度为 N 的矩形。

  • 输入格式:在一行中给出一个正整数 N(3 ≤ N ≤ 21)和一个字符 C,它们之间以空格分隔。

  • 输出格式:输出由字符 C 组成的矩形,其中宽度为 N,高度为 (N + 1) / 2


解题思路
  1. 处理输入:读取输入的正整数 N 和字符 C
  2. 计算矩形的高度:根据题目要求,矩形的高度为 (N + 1) / 2,即对 N/2 进行四舍五入。
  3. 字符输出:通过循环,每行输出 N 个字符 C,共输出 高度 行。

代码实现
package cjcDemo

import std.console.*
import std.convert.*
import std.math.*  // 导入数学库以便计算四舍五入

main(): Int64 {
    // 读取输入,获取整数 N 和字符 C
    let input = Console.stdIn.readln().getOrThrow()
    let inputs = input.split(" ")
    let N = Int64.parse(inputs[0])
    let C = inputs[1]

    // 计算矩形的高度
    let height = (N + 1) / 2

    // 输出矩形
    for (_ in 1..=height) {  // 外层循环,控制行数
        for (_ in 1..=N) {   // 内层循环,控制每行输出字符数
            print(C)         // 输出字符,不换行
        }
        println("")          // 每行输出完成后换行
    }

    return 0
}

代码详解
  1. 输入处理:通过 split(" ") 方法将输入的整数 N 和字符 C 分开,并将 N 转换为整数。C 保持为字符串。
  2. 高度计算:根据公式 (N + 1) / 2 来计算矩形的高度,实现四舍五入取整。
  3. 循环输出:使用双层循环结构输出矩形图形。外层循环控制高度,内层循环控制每行的字符输出。

示例执行

示例 1
输入:

10 a

输出:

aaaaaaaaaa
aaaaaaaaaa
aaaaaaaaaa
aaaaaaaaaa
aaaaaaaaaa

示例 2
输入:

7 #

输出:

#######
#######
#######
#######

小结

本篇通过实现 L1-015 跟奥巴马一起画方块 题目,展示了Cangjie语言中使用循环控制和格式化输出来创建简单的图形。通过对字符的重复输出和行数控制,掌握了如何通过双重循环结构绘制规则的矩形图形。这一练习对循环结构和字符处理有很好的巩固作用。


下篇预告

下一篇将进入 「Mac玩转仓颉内测版37」PTA刷题篇16 - L1-016 查验身份证,通过对字符串的处理和判断,进一步提升Cangjie语言对文本数据的处理能力,敬请期待!


上一篇: 「Mac玩转仓颉内测版35」PTA刷题篇14 - L1-014 简单题

下一篇: 「Mac玩转仓颉内测版37」PTA刷题篇16 - L1-016 查验身份证


作者:SoraLuna 链接:https://www.nutpi.net 來源:坚果派 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。


收藏00

登录 后评论。没有帐号? 注册 一个。