java50道经典习题-程序19输入行数打印菱形图案(代码片段)

parkour1026 parkour1026     2022-12-02     206

关键词:

题目:根据用户输入的行数打印菱形图案,若用户传入的是为偶数则提示用户重新输入,例如输入数字7打印出如下菱形图案
   *
  ***
 *****
*******
 *****
  ***
   *
分析:先把图形分成两部分来看待,前四行一个规律,后三行一个规律,利用双重 for循环,第一层控制行,第二层控制列。

 1 import java.util.Scanner;
 2 public class Prog19 
 3     public static void main(String[] args) 
 4         Scanner input=new Scanner(System.in);
 5         System.out.println("请输入要打印的菱形图案的行数(输入的行数必须大于等于3):");
 6         int rows=input.nextInt();
 7         while(rows%2==0) 
 8             System.out.println("请输入奇数:");
 9             rows=input.nextInt();
10         
11         input.close();
12         int n=(rows+1)/2;//上半部分等于行数的一半
13         //打印菱形的上半部分
14         for(int i=1;i<=n;i++) 
15             for(int j=1;j<=n-i;j++) //打印空格
16                 System.out.print(" ");
17             
18             for(int k=1;k<=(2*i-1);k++) //打印*号
19                 System.out.print("*");
20             
21             System.out.println();//换行
22         
23         //打印菱形的下半部分
24         for(int i=n-1;i>=1;i--) //这里使用n-1是因为下半部分比上半部分少1行
25             for(int j=1;j<=n-i;j++) //打印空格
26                 System.out.print(" ");
27             
28             for(int k=1;k<=2*i-1;k++) //打印*号
29                 System.out.print("*");
30             
31             System.out.println();//换行
32         
33     
34 
35 /*运行结果
36 请输入要打印的菱形图案的行数(输入的行数必须大于等于3):
37 7
38    *
39   ***
40  *****
41 *******
42  *****
43   ***
44    *
45 */

 

java基础50道经典练习题(19)——打印菱形

【程序19打印菱形图案】题目:打印出如下图案(菱形)************************* 源码:packagecom.homework.test;/*【程序19打印菱形图案】题目:打印出如下图案(菱形)**************************/publicclassTest19{publicstaticvoidmain(String[]args){intn=... 查看详情

java50道经典习题-程序8输入数字求和(代码片段)

题目:求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。例如2+22+222+2222+22222(此时共有5个数相加),几个数相加有键盘控制。 分析:关键是计算出每一项的值。1importjava.util.Scanner;2publicclassProg83publicstaticvoidmain(String[]args)4System.out.prin... 查看详情

java50道经典习题-程序16在控制台上打印九九乘法表(代码片段)

题目:输出9*9口诀。分析:利用双重for循环进行输出,分行与列考虑,共9行9列,i控制行,j控制列。1publicclassProg162publicstaticvoidmain(String[]args)3for(inti=1;i<10;i++)4for(intj=1;j<i+1;j++)5System.out.print(j+"*"+i+"="+(j*i)+"\t");/ 查看详情

java基础50道经典练习题(26)——求星期

【程序26求星期】题目:请输入星期几的第一个字母来判断一下是星期几,如果第一个字母一样,则继续判断第二个字母。程序分析:用情况语句比较好,如果第一个字母一样,则判断用情况语句或if语句判断第二个字母。 ... 查看详情

java基础50道经典练习题(26)——求星期

【程序26求星期】题目:请输入星期几的第一个字母来判断一下是星期几,如果第一个字母一样,则继续判断第二个字母。程序分析:用情况语句比较好,如果第一个字母一样,则判断用情况语句或if语句判断第二个字母。 ... 查看详情

java基础50道经典练习题——水仙花数

【程序3水仙花数】题目:打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个"水仙花数",因为153=1的三次方+5的三次方+3的三次方。程序分析:利用for循环控制100-999个... 查看详情

java基础50道经典练习题——水仙花数

【程序3水仙花数】题目:打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个"水仙花数",因为153=1的三次方+5的三次方+3的三次方。程序分析:利用for循环控制100-999个... 查看详情

java50道经典习题-程序10自由落体(代码片段)

题目:一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第10次落地时,共经过多少米?第10次反弹多高?1importjava.util.Scanner;2publicclassProg103publicstaticvoidmain(String[]args)4System.out.println("请输入小球落地时... 查看详情

java基础50道经典练习题(15)——排序

【程序15排序】题目:输入三个整数x,y,z,请把这三个数由小到大输出。 程序分析:我们想办法把最小的数放到x上,先将x与y进行比较,如果x>y则将x与y的值进行交换,然后再用x与z进行比较,如果x>z则将x与z的值进行交... 查看详情

java基础50道经典练习题(15)——排序

【程序15排序】题目:输入三个整数x,y,z,请把这三个数由小到大输出。 程序分析:我们想办法把最小的数放到x上,先将x与y进行比较,如果x>y则将x与y的值进行交换,然后再用x与z进行比较,如果x>z则将x与z的值进行交... 查看详情

java基础50道经典练习题(21)——求阶乘

【程序21求阶乘】题目:求1+2!+3!+...+20!的和 程序分析:此程序只是把累加变成了累乘。 源码:packagecom.homework.test;/*【程序21求阶乘】题目:求1+2!+3!+...+20!的和程序分析:此程序只是把累加变成了累乘。*/publicclassTest21{public... 查看详情

java基础50道经典练习题(21)——求阶乘

【程序21求阶乘】题目:求1+2!+3!+...+20!的和 程序分析:此程序只是把累加变成了累乘。 源码:packagecom.homework.test;/*【程序21求阶乘】题目:求1+2!+3!+...+20!的和程序分析:此程序只是把累加变成了累乘。*/publicclassTest21{public... 查看详情

java50道经典习题-程序21求阶乘(代码片段)

题目:求1+2!+3!+...+20!的和分析:使用递归求解0的阶乘和1的阶乘都为1publicclassProg21publicstaticvoidmain(String[]args)longsum=0L;for(inti=1;i<=20;i++)sum+=factorial(i);System.out.println(sum);//递归求阶乘publicstaticlongfa 查看详情

java50道经典习题-程序9求完数(代码片段)

题目:一个数如果恰好等于它的因子之和,这个数就称为"完数"。例如6=1+2+3.编程找出1000以内的所有完数。1publicclassProg92publicstaticvoidmain(String[]args)3intn=1000;4compNumber(n);56//求完数7privatestaticvoidcompNumber(intn)8System.out.println(n 查看详情

java50道经典习题-程序22递归求阶乘(代码片段)

题目:利用递归方法求5!。分析:递归公式:n*factorial(n-1);1publicclassProg222publicstaticvoidmain(String[]args)3System.out.println(factorial(5));45//递归求阶乘6publicstaticlongfactorial(intn)7if(n==0||n==1)8return1L;910 查看详情

java基础50道经典练习题(22)——递归求阶乘

【程序22递归求阶乘】题目:利用递归方法求5!。 程序分析:递归公式:fn=fn_1*4! 源码:packagecom.homework.test;/*【程序22递归求阶乘】题目:利用递归方法求5!。程序分析:递归公式:fn=fn_1*4!*/publicclassTest22{publicstaticvoidmain(Str... 查看详情

java基础50道经典练习题(22)——递归求阶乘

【程序22递归求阶乘】题目:利用递归方法求5!。 程序分析:递归公式:fn=fn_1*4! 源码:packagecom.homework.test;/*【程序22递归求阶乘】题目:利用递归方法求5!。程序分析:递归公式:fn=fn_1*4!*/publicclassTest22{publicstaticvoidmain(Str... 查看详情

java基础50道经典练习题(27)——求素数

【程序27求素数】题目:求100之内的素数 源码:packagecom.homework.test;/*【程序27求素数】题目:求100之内的素数*/publicclassTest27{publicstaticvoidmain(String[]args){intcount=0;for(inti=2;i<100;i++){if(IsPrime(i)){System.out.print 查看详情