java基础编程题
1、打印出如下图案
1 public class Prog19{ 2 public static void main(String[] args){ 3 int n = 5; 4 printStar(n); 5 } 6 7 //打印星星 8 private static void printStar(int n){ 9 //打印上半部分 10 for(int i=0;i<n;i++){ 11 for(int j=0;j<2*n;j++){ 12 if(j<n-i) 13 System.out.print(" "); 14 if(j>=n-i && j<=n+i) 15 System.out.print("*"); 16 } 17 System.out.println(); 18 } 19 //打印下半部分 20 for(int i=1;i<n;i++){ 21 System.out.print(" "); 22 for(int j=0;j<2*n-i;j++){ 23 if(j<i) 24 System.out.print(" "); 25 if(j>=i && j<2*n-i-1) 26 System.out.print("*"); 27 } 28 System.out.println(); 29 } 30 } 31 }
解题思路:先把图形分成两部分来看待,前五行一个规律,后四行一个规律,利用双重 for循环,第一层控制行,第二层控制列。重要的是找准规律!
2、题目:求1+2!+3!+...+20!的和
1 public class suibian{ 2 public static void main(String[] args){ 3 long sum = 0; 4 for(int i=0;i<20;i++) { 5 sum += factorial(i+1); 6 } 7 System.out.println(sum); 8 } 9 //阶乘 10 private static long factorial(int n){ 11 int mult = 1; 12 for(int i=1;i<n+1;i++) 13 mult *= i; 14 return mult; 15 } 16 }
程序分析:将阶乘另设置一个函数避免错误!