Java-11 – JAVA基础编程练习

【程序21】题目:求1+2!+3!+...+20!的和
程序分析:此程序只是把累加变成了累乘。
1、先求该项阶乘的值
2、累加求

【程序22】

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

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

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


【程序23】

题目:有5个人坐在一起,问第五个人多少岁?他说比第4个人大2岁。问第4个人岁数,他说比第3个人大2岁。问第三个人,又说比第2人大两岁。问第2个人,说比第一个人大两岁。最后问第一个人,他说是10岁。请问第五个人多大?
程序分析:利用递归的方法,递归分为回推和递推两个阶段。要想知道第五个人岁数,需知道第四人的岁数,依次类推,推到第一人(10岁),再往回推。


【程序24】

题目:给一个不多于5位的正整数,要求:一、求它是几位数,二、逆序打印出各位数字。
程序分析:创建一个五位数数的数组,把输入数字的每位数的值赋值到数组里面  
* 把输入 数字从个位起获取,并且每获取一次之后/10,这样就能分别获取十位百位千位了
 * 把数字打印出来就是题目所求了 


【程序25】

题目:一个5位数,判断它是不是回文数。即12321是回文数,个位与万位相同,十位与千位相同。
程序分析:这个程序跟上一个程序类似。

* 创建一个五位数的数组

* 逐次取位

* 组后判断条件就可以了


【程序26】

题目:请输入星期几的第一个字母来判断一下是星期几,如果第一个字母一样,则继续判断第二个字母。
程序分析:用情况语句比较好,如果第一个字母一样,则判断用情况语句或if语句判断第二个字母。


【程序27】

题目:求100之内的素数
素数的判断方法:这个数除以2到比它本身少1的数都不能整除,那么这个数就是素数了!


【程序28】

题目:对10个数进行排序
程序分析:可以利用选择法,即从后9个比较过程中,选择一个最小的与第一个元素交换,下次类推,即用第二个元素与后8个进行比较,并进行交换。最后打印出来的数组就是从小到大排列的数组了


【程序29】

题目:求一个3*3矩阵对角线元素之和
程序分析:利用双重for循环控制输入二维数组,再将a[i][i]累加后输出。


【程序30】

题目:有一个已经排好序的数组。现输入一个数,要求按原来的规律将它插入数组中。
程序分析:首先判断此数是否大于最后一个数,然后再考虑插入中间的数的情况,插入后此元素之后的数,依次后移一个位置。
1、创建两个数组,如果插入的数字比数组最后一个都大,那么插入的数放在新数组最后就可以
 2、如果插入的不是最大,那么和数组前面的数逐一比较,比较到比插入的数大就break