打印图形
2012-07-24 17:40
190 查看
package com.huawei.mun;
import java.util.Scanner;
public class PrintPlot {
public static void main(String[] args)
{
Scanner input = new Scanner(System.in);
String str = input.next();
while(str.matches("^[0-9]*$"))
{
plot(Integer.parseInt(str));
str= input.next();
}
System.out.println("结束!");
}
public static void plot(int n)
{
for(int i=0;i<n;i++)
{
//每行" "的个数
int m1 = 0;
//每行"*"的个数
int m2 = 0;
if (i < n / 2)
{
//前半部分
m1 = i;
m2 = n - 2 * i;
}
else
{
//后半部分
//总行数为奇数
m1 = (n - 1) / 2 - (i - (n - 1) / 2);
m2 = 1 + 2 * (i - (n - 1) / 2);
//总行数为偶数
if(n%2==0)
{
m1 = n / 2 - 1 - (i - n / 2);
m2 = 2 + 2 * (i - n / 2);
}
}
for (int k = 0; k < m1; k++)
{
System.out.print(" ");
}
for (int j = 0; j < m2; j++)
{
System.out.print("*");
}
System.out.println();
}
}
}
控制台:
5
*****
***
*
***
*****
6
******
****
**
**
****
******
import java.util.Scanner;
public class PrintPlot {
public static void main(String[] args)
{
Scanner input = new Scanner(System.in);
String str = input.next();
while(str.matches("^[0-9]*$"))
{
plot(Integer.parseInt(str));
str= input.next();
}
System.out.println("结束!");
}
public static void plot(int n)
{
for(int i=0;i<n;i++)
{
//每行" "的个数
int m1 = 0;
//每行"*"的个数
int m2 = 0;
if (i < n / 2)
{
//前半部分
m1 = i;
m2 = n - 2 * i;
}
else
{
//后半部分
//总行数为奇数
m1 = (n - 1) / 2 - (i - (n - 1) / 2);
m2 = 1 + 2 * (i - (n - 1) / 2);
//总行数为偶数
if(n%2==0)
{
m1 = n / 2 - 1 - (i - n / 2);
m2 = 2 + 2 * (i - n / 2);
}
}
for (int k = 0; k < m1; k++)
{
System.out.print(" ");
}
for (int j = 0; j < m2; j++)
{
System.out.print("*");
}
System.out.println();
}
}
}
控制台:
5
*****
***
*
***
*****
6
******
****
**
**
****
******
相关文章推荐