1、题目:
2,本题比较的简单一点,我讲述一下我的解题思路吧:
第一:先确定要输入的n能搞几层对称沙漏。
第二:分别用算法搞出上半部分哪几层和下半部分几层即可。
3,代码实现如下哇:
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int n = in.nextInt();
String str = in.next();
int count = 0;
int sum = 1,total = 0;
for (int i = 3; i < n; i+=2) {
count++;
total = n - sum;
sum = sum + 2*i;
if(sum == n){
break;
}
if(sum > n){
count--;
// sum = sum - 2*i;
break;
}
}
int x1,x2;
x1 = x2 = count;
int c = 0;
while(x1>0){
for (int i = 0; i < c; i++) {
System.out.print(" ");
}
for (int j = 1; j <= 2*x1+1 ; j++) {
System.out.print(str);
}
System.out.println();
x1--;
c++;
}
for (int i = 0; i < count; i++) {
System.out.print(" ");
}
System.out.println(str);
while(x2>0){
x2--;
for (int i = 0; i < x2; i++) {
System.out.print(" ");
}
for (int j = 0; j < 2*(count-x2)+1; j++) {
System.out.print(str);
}
System.out.println();
}
System.out.println(total);
}
}