跟奥巴马一起编程--Java版

本文介绍了一种使用Java编程语言绘制正方形图案的方法。通过接受用户输入的正方形边长和指定字符,程序能够生成并打印出由指定字符组成的正方形。特别地,为了使输出的图案更接近正方形,程序调整了行数为列数的50%,并通过循环结构实现了图案的绘制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

链接:https://www.nowcoder.com/questionTerminal/8af708723b0f45f9a80bc80d78d3566e
来源:牛客网

输入描述:
输入在一行中给出正方形边长N(3<=N<=20)和组成正方形边的某种字符C,间隔一个空格。
输出描述:
输出由给定字符C画出的正方形。但是注意到行间距比列间距大,所以为了让结果看上去更像正方形,我们输出的行数实际上是列数的50%(四舍五入取整)。


例如: 3 a
在这里插入图片描述
思路: 先接受输入获取到行数,字符;然后第一行输出,中间行输出,最后一行输出。中间行输出一定要依照输出的行数实际上是列数的50%的提示。

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int N = sc.nextInt();//输出的列数
        String c = sc.next();//输出的字符
        for (int i = 1; i <= N; i++) {//输出第一行
            System.out.print(c);
        }
        System.out.println();//第一行换行
        //Math.ceil:向上取整
        //Math.ceil(11.46)=Math.ceil(11.68)=Math.ceil(11.5)=12上
        //Math.ceil(-11.46)=Math.ceil(-11.68)=Math.ceil(-11.5)=-11
        for (int i = 1; i <= Math.ceil((double) N / 2 - 2); i++) {//输出中间行
            System.out.print(c);//中间行第一个字符
            for (int j = 2; j <= N - 1; j++) {
                System.out.print(" ");//中间行其它字符为空字符串
            }
            System.out.println(c);//中间行最后一个字符
        }
        for (int i = 1; i <= N; i++) {//输出最后一行
            System.out.print(c);
        }
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值