JAVA经典算法50题(7)

时间:2026-01-19

= 0;
for (i = 1; i <= 4; i++) {
for (int k = 1; k <= 4 - i; k++)
System.out.print( " " );
for (j = 1; j <= 2 * i - 1; j++)
System.out.print("*");
System.out.println();
}
for (i = 3; i >= 1; i--) {
for (int k = 1; k <= 4 - i; k++)
System.out.print( " " );
for (j = 1; j <= 2 * i - 1; j++)
System.out.print("*");
System.out.println();
}
}
}

【程序20】 题目:有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13...求出这个数列的前20项之和。
1.程序分析:请抓住分子与分母的变化规律。
public class Demo20 {
public static void main(String[] args) {
float fm = 1.0f;
float fz = 1.0f;
float temp;
float sum = 0f;
for (int i = 0; i < 20; i++) {
temp = fm;
fm = fz;
fz = fz + temp;
System.out.println((int) fz + "/" + (int) fm);
sum += fz / fm;
}
System.out.println(sum);
}
}

【程序21】 题目:求1+2!+3!+...+20!的和。
1.程序分析:此程序只是把累加变成了累乘。
public class Demo21 {
public static void main(String[] args) {
long sum = 0;
long fac = 1;
for (int i = 1; i <= 20; i++) {
fac = fac * i;
sum += fac;
}
System.out.println(sum);
}
}

【程序22】 题目:利用递归方法求5!。
1.程序分析:递归公式:f(n)=f(n-1)*4!
import java.util.Scanner;
public class Demo22 {
public static long fac(int n) {
long value = 0;
if (n == 1 || n == 0) {
value = 1;
} else if (n > 1) {
value = n * fac(n - 1);
}
return value;
}
public static void main(String[] args) {
System.out.println("请输入一个数:");
Scanner in = new Scanner(System.in);
int n = in.nextInt();
System.out.println(n + "的阶乘为:" + fac(n));
}
}

【程序23】 题目:有5个人坐在一起,问第五个人多少岁?他说比第4个人大2岁。问第4个人岁数,他说比第3个人大2岁。问第三个人,又说比第2人大两岁。问第2个人,说比第一个人大两岁。最后问第一个人,他说是10岁。请问第五个人多大?
1.程序分析:利用递归的方法,递归分为回推和递推两个阶段。要想知道第五个人岁数,需知道第四人的岁数,依次类推,推到第一人(10岁),再往回推。
直接求解:
public class Demo23 {
public static void main(String[] args) {
int n = 10;
for (int i = 0; i < 4; i++) {
n = n + 2;
}
System.out.println("第五个人" + n + "岁");
}
}
递归求解:
public class Demo23 {
public static int getAge(int n) {
if (n == 1) {
return 10;
}
return 2 + getAge(n - 1);
}
public static void main(String[] args) {
System.out.println("第五
个的年龄为" + getAge(5));
}
}

【程序24】 题目:给一个不多于5位的正整数,要求:一、求它是几位数,二、逆序打印出各位数字。
本题原方法:
import java.util.Scanner;
public class Demo24 {

JAVA经典算法50题(7).doc 将本文的Word文档下载到电脑

精彩图片

热门精选

大家正在看

× 游客快捷下载通道(下载后可以自由复制和排版)

限时特价:4.9 元/份 原价:20元

支付方式:

开通VIP包月会员 特价:19元/月

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219