题目描述
编写一个程序,输入1个正整数n,若n为奇数则打印n行的菱形星块;若n为偶数,则提示继续输入,直到输入一个奇数为止。
完整的运行结果如下(其中10和7是输入信息其余的是输出信息):
请输入n:
10
n必须为奇数,请重新输入:
7
*
***
*****
*******
*****
***
*
输入描述
一个或若干个正整数n(前面的都是偶数,最后一个是奇数)
输出描述
提示信息及菱形星块(提示信息后换行,菱形块中的每个行也都换行)
输入样例
10
7
输出样例
请输入n:
n必须为奇数,请重新输入:
*
***
*****
*******
*****
***
*
程序代码
import java.util.Scanner;
public class Main{
public static void main(String[] args){
Scanner scanner = new Scanner(System.in);
System.out.println("请输入n:");
int n = scanner.nextInt();
while(n % 2 == 0){
System.out.println("n必须为奇数,请重新输入:");
n = scanner.nextInt();
}
int blank = n / 2, y = n / 2 + 1;
int star = 1;
for(int i = 1; i <= n; i++){
for(int k = 1; k <= blank; k++){
System.out.print(" ");
}
for(int k = 1;k <= star; k++){
System.out.print("*");
}
System.out.print("\r\n");
if(i < y){
blank = blank - 1;
star = star + 2;}
else{
blank = blank + 1;
star = star - 2;
}
}
}
}