【程序19】题目:打印出如下图案(菱形)
*
***
*****
*******
*****
***
*
1.程序分析:先把图形分成两部分来看待,前四行一个规律,后三行一个规律,利用双重 for循环,第一层控制行,第二层控制列。
public class Demo1 {
public static void main(String[] args) {
for(int i=1;i<=4;i++){
int n = 2*i-1;
for(int j=1;j<=n;j++){
System.out.print("*");
}
System.out.println();
}
for(int i=3;i>=1;i--){
int n = 2*i-1;
for(int j=1;j<=n;j++){
System.out.print("*");
}
System.out.println();
}
}
}
【程序20】题目:有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13…求出这个数列的前20项之和。
public class Demo1 {
public static void main(String[] args) {
double m=1;
double z=2;
double sum=0;
for(int i=1;i<=20;i++){
System.out.print((int)z+"/"+(int)m);
sum+=z/m;
double t =z;
z=m+z;
m=t;
if(i<20)
System.out.print("+");
}
System.out.println("="+sum);
}
}
【运行结果】
2/1+3/2+5/3+8/5+13/8+21/13+34/21+55/34+89/55+144/89+233/144+377/233+610/377+987/610+1597/987+2584/1597+4181/2584+6765/4181+10946/6765+17711/10946=32.66026079864164
【程序21】题目:求1+2!+3!+…+20!的和
public class Demo1 {
public static double fun(int n){
if(n==1||n==0)
return 1;
else
return fun(n-1)*n;
}
public static void main(String[] args) {
double sum=0;
for(int i=1;i<=20;i++){
sum +=fun(i);
System.out.print(i+"!");
if(i<20)
System.out.print("+");
}
System.out.println("="+sum);
}
}
【运行结果】
1!+2!+3!+4!+5!+6!+7!+8!+9!+10!+11!+12!+13!+14!+15!+16!+17!+18!+19!+20!=2.5613274941118203E18