天天看點

經典java程式設計題_50道經典的JAVA程式設計題(21-25)

50道經典的JAVA程式設計題(21-25),明天早上java考試了,還是堅持做題吧。。。這題比老師的題好多了!

【程式21】TestJieCheng.java

題目:求1+2!+3!+...+20!的和

1.程式分析:此程式隻是把累加變成了累乘

經典java程式設計題_50道經典的JAVA程式設計題(21-25)
經典java程式設計題_50道經典的JAVA程式設計題(21-25)

javapackage test50;

public class TestJieCheng {

public static long jieCheng(int n){

if(n == 1) return 1;

else return jieCheng(n-1)*n;

}

public static void main(String[] args) {

long ans = 0;

for(int i=1; i<=20; i++){

ans = ans + jieCheng(i);

}

System.out.println(ans);

}

}

經典java程式設計題_50道經典的JAVA程式設計題(21-25)

【程式22】

題目:利用遞歸方法求5!。 TestJieCheng2.java

1.程式分析:遞歸公式:fn=fn_1*4!遞歸函數詳見【程式21】

經典java程式設計題_50道經典的JAVA程式設計題(21-25)
經典java程式設計題_50道經典的JAVA程式設計題(21-25)

javapublic static long jieCheng(int n){

if(n == 1) return 1;

else return jieCheng(n-1)*n;

}

經典java程式設計題_50道經典的JAVA程式設計題(21-25)

【程式23】TestAge.java

題目:有5個人坐在一起,問第五個人多少歲?他說比第4個人大2歲。問第4個人歲數,他說比第3個人大2歲。問第三個人,又說比第2人大兩歲。問第2個人,說比第一個人大兩歲。最後問第一個人,他說是10歲。請問第五個人多大?

1.程式分析:利用遞歸的方法,遞歸分為回推和遞推兩個階段。要想知道第五個人歲數,需知道第四人的歲數,依次類推,推到第一人(10歲),再往回推。

經典java程式設計題_50道經典的JAVA程式設計題(21-25)
經典java程式設計題_50道經典的JAVA程式設計題(21-25)

javapackage test50;

public class TestAge {

public static int getAge(int n){

if(n == 1) return 10;

else return getAge(n-1) + 2;

}

public static void main(String[] args) {

System.out.println(getAge(5));

}

}

經典java程式設計題_50道經典的JAVA程式設計題(21-25)

【程式24】TestNumber.java

題目:給一個不多于5位的正整數,要求:一、求它是幾位數,二、逆序列印出各位數字。

經典java程式設計題_50道經典的JAVA程式設計題(21-25)
經典java程式設計題_50道經典的JAVA程式設計題(21-25)

javapackage test50;

import java.util.ArrayList;

import java.util.Iterator;

import java.util.List;

import java.util.Scanner;

public class TestNumber {

public static List explodeNumber(long n){

List l = new ArrayList();

long cup = n;

while(cup != 0){

l.add((int) (cup%10));

cup = cup/10;

}

return l;

}

public static void main(String[] args) {

System.out.println("給一個不多于5位的正整數:");

Scanner s = new Scanner(System.in);

long n = 0;

if(s.hasNext()) n = s.nextInt();

List l = explodeNumber(n);

System.out.println("它是"+l.size()+"位數");

Iterator it = l.iterator();

while(it.hasNext()){

System.out.print(it.next());

}

}

}

經典java程式設計題_50道經典的JAVA程式設計題(21-25)

【程式25】 HuiWenShu.java

題目:一個5位數,判斷它是不是回文數。即12321是回文數,個位與萬位相同,十位與千位相同。

經典java程式設計題_50道經典的JAVA程式設計題(21-25)
經典java程式設計題_50道經典的JAVA程式設計題(21-25)

javapackage test50;

import java.util.ArrayList;

import java.util.List;

import java.util.Scanner;

public class HuiWenShu {

public static List explodeNumber(long n){

List l = new ArrayList();

long cup = n;

while(cup != 0){

l.add((int) (cup%10));

cup = cup/10;

}

return l;

}

public static void main(String[] args) {

System.out.println("輸入一個數:");

Scanner s = new Scanner(System.in);

long n = 0;

if(s.hasNext()) n = s.nextLong();

List l = explodeNumber(n);

Integer[] a = (Integer[])l.toArray(new Integer[]{});

for(int i=0; i<=a.length/2; i++) {

if(!a[i].equals(a[a.length-i-1])){

System.out.println("不是回文");

return;

}

}

System.out.println("是回文");

}

}

經典java程式設計題_50道經典的JAVA程式設計題(21-25)
經典java程式設計題_50道經典的JAVA程式設計題(21-25)