当先锋百科网

首页 1 2 3 4 5 6 7

 

1.这是自己练题的一个过程。

2.是自己一步一步掌握java语言的过程。代码都是简单的函数代码。适合初学java语言的同学。

 

本题要求你写个程序把给定的符号打印成沙漏的形状。例如给定17个“*”,要求按下列格式打印

************
*****

所谓“沙漏形状”,是指每行输出奇数个符号;各行符号中心对齐;相邻两行符号数差2;符号数先从大到小顺序递减到1,再从小到大顺序递增;首尾符号数相等。

给定任意N个符号,不一定能正好组成一个沙漏。要求打印出的沙漏能用掉尽可能多的符号。

输入格式:

输入在一行给出1个正整数N(≤1000)和一个符号,中间以空格分隔。

输出格式:

首先打印出由给定符号组成的最大的沙漏形状,最后在一行中输出剩下没用掉的符号数。

输入样例:

19 *

输出样例:

************
*****
2
import java.util.*;
public class Main {public static void main(String[] args) {Scanner x = new Scanner(System.in);int a = x.nextInt();String s = x.next();int[] ad =new int[100];int cnt=1;int d=0;int sum=1;ad[0]=1;for(int i=1;i>0;i++){ad[i]=cnt+2;cnt=cnt+2;sum+=ad[i];d++;if(sum>a/2){d--;break;}}for(int i=d;i>=1;i--){for(int j=ad[i]/2;j<ad[d]/2;j++){System.out.print(" ");}for(int z=0;z<ad[i];z++){System.out.print(s);}	System.out.println();}int sum1=0;for(int i=0;i<=d;i++){sum1+=ad[i];for(int j=ad[i]/2;j<ad[d]/2;j++){System.out.print(" ");}for(int z=0;z<ad[i];z++){System.out.print(s);}	System.out.println();}System.out.println(a-2*sum1+1);}}