“沙漏形状”算法题

来源:互联网 发布:java云计算框架 编辑:程序博客网 时间:2024/05/17 22:02
package 沙漏;import java.util.Scanner;public class shaLou {public static void main(String[] args) {Scanner sc = new Scanner(System.in);System.out.println("请输入数字:");int num = sc.nextInt();boolean flag = true;int n = 5,//计算沙漏边长(n-4)sum=7,//与输入值相对比得到nyushu = 0;//沙漏完成后剩余数while(flag){if(num>=7){if((num-sum)>=0){yushu =num-sum;sum = sum+(2*n);n+=2;}else{flag = false;}}else{flag =false;}}if((n-7)>=0){//打印前半部分for(int i =0;i<((n-3)/2);i++){for(int k =0;k<i;k++){System.out.print(" ");}for(int j=2*i;j<(n-4);j++){System.out.print("*");}System.out.println();}//打印后半部分for(int i =0;i<((n-5)/2);i++){for(int k =i;k<(((n-5)/2)-1);k++){System.out.print(" ");}for(int j=0;j<(2*i+3);j++){System.out.print("*");}System.out.println();}System.out.println(yushu);}else{System.out.println(num);}}}