PAT B1036 Java
程序员文章站
2022-06-08 12:24:56
...
题目中要求行数是列数的50%,同时四舍五入取整。但其实这题并不需要过多考虑这个取整,因为本题行数=列数/2,小数部分肯定都是0.5,不存在舍去。因此只需把列数定义为double类型,保留行数的小数部分就可以了。举个例子,当n=5时,行数应该为3,但未四舍五入时就是2.5。在for循环中,当i=2时,因为i<2.5,所以会继续执行。最终实现效果和3是等效的。
import java.util.Scanner;
public class Main {
public static void main(String[] args)
{
Scanner sc=new Scanner(System.in);
double n=sc.nextDouble();
String c=sc.next();
for(int i=0;i<n;i++)
System.out.print(c);
System.out.println();
for(int i=0;i<n/2-2;i++)
{
System.out.print(c);
for(int j=0;j<n-2;j++)
System.out.print(" ");
System.out.print(c);
System.out.println();
}
for(int i=0;i<n;i++)
System.out.print(c);
}
}
如果需要四舍五入怎么办呢?就用Math.round()函数。
System.out.print(Math.round(2.5));