java经典50道编程题(很好练逻辑思维的题)(第三篇)

本文提供了一系列Java编程练习题,包括计算阶乘、递归求解问题以及数字处理等。通过这些题目,可以锻炼逻辑思维能力和递归编程技巧。题目涵盖了从简单的数字累加到复杂的数据排序和矩阵操作。例如,程序21计算1到20的阶乘和,程序22使用递归求5的阶乘,程序23解决基于递归的年龄问题,程序24和25涉及数字处理和回文判断,程序26实现根据输入字母判断星期,程序27找到100以内的素数,程序28对10个数字进行排序,程序29求3x3矩阵对角线之和,最后程序30涉及有序数组的插入操作。
摘要由CSDN通过智能技术生成

【程序21】

题目:求1+2!+3!+…+20!的和

程序分析:此程序只是把累加变成了累乘。

1、先求该项阶乘的值

*   2、累加求求

public class Programme21 {

public static void main(String[] args) {

int sum=0;//总和

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

sum+=factorial(i);//累加

}

System.out.println(""+sum);

}

//求阶乘的实现

private static int factorial(inti) {

//求阶乘

int mult=1;

for (intj=1 ; j <= i;j++) {

mult*=j;

}

returnmult;//返回阶乘结果

}

}

【程序22】

题目:利用递归方法求5!。

程序分析:递归公式:f(n)=n*f(n-1)

不断的调用方法,直到最小的值确定

public class Programme22 {

public static void main(String[] args) {

System.out.println(Fact(5));//输出结果值

}

//递归方法求阶乘的具体代码

private static int  Fact(inti) {

if (i==1) {//1的阶乘为1

return 1;

}

returni*Fact(i-1);//不断回调

}

}

【程序23】

题目:有5个人坐在一起,问第五个人多少岁?他说比第4个人大2岁。问第4个人岁数,他说比第3个人大2岁。问第三个人,又说比第2人大两岁。问第2个人,说比第一个人大两岁。最后问第一个人,他说是10岁。请问第五个人多大?

程序分析:利用递归的方法,递归分为回推和递推两个阶段。要想知道第五个人岁数,需知道第四人的岁数,依次类推,推到第一人(10岁),再往回推。

public class Programme23 {

public static void main(String[] args) {

System.out.println(“第五个人的岁数:”+GetAge(5,2));

}

//递归方法求第五个人的岁数

private static int GetAge(intnum, intageMore) {

if (num==1) {//第一个人岁数为10

return 10;

}

returnGetAge(num-1, ageMore)+ageMore;//每上一个人岁数加2

}

}

【程序24

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值