50道经典的JAVA编程题(21-25)
50道经典的JAVA编程题(21-25),明天早上java考试了,还是坚持做题吧。。。这题比老师的题好多了!
【程序21】TestJieCheng.java
题目:求1+2!+3!+...+20!的和
1.程序分析:此程序只是把累加变成了累乘
javapackage test50; /**
* @author VellBibi
*【程序21】TestJieCheng.java
*题目:求1+2!+3!+...+20!的和
*1.程序分析:此程序只是把累加变成了累乘。
*/
public class TestJieCheng { /**
* 求n的阶乘
* @param n
* @return
*/
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);
}
}
【程序22】
题目:利用递归方法求5!。 TestJieCheng2.java
1.程序分析:递归公式:fn=fn_1*4!
递归函数详见【程序21】
javapublic static long jieCheng(int n){
if(n == 1) return 1;
else return jieCheng(n-1)*n;
}
【程序23】TestAge.java
题目:有5个人坐在一起,问第五个人多少岁?他说比第4个人大2岁。问第4个人岁数,他说比第3个人大2岁。问第三个人,又说比第2人大两岁。问第2个人,说比第一个人大两岁。最后问第一个人,他说是10岁。请问第五个人多大?
1.程序分析:利用递归的方法,递归分为回推和递推两个阶段。要想知道第五个人岁数,需知道第四人的岁数,依次类推,推到第一人(10岁),再往回推。
javapackage test50; /**
* @author VellBibi
*【程序23】TestAge.java
*题目:有5个人坐在一起,问第五个人多少岁?他说比第4个人大2岁。问第4个人岁数,他说比第3个人大2岁。
*问第三个人,又说比第2人大两岁。问第2个人,说比第一个人大两岁。最后问第一个人,他说是10岁。请问第五个人多大?
*1.程序分析:利用递归的方法,递归分为回推和递推两个阶段。要想知道第五个人岁数,需知道第四人的岁数,依次类推,推到第一人(10岁),再往回推。
*/
public class TestAge { /**
* 获取第n个人的岁数
* @param n
* @return
*/
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));
}
}
【程序24】TestNumber.java
题目:给一个不多于5位的正整数,要求:一、求它是几位数,二、逆序打印出各位数字。
javapackage test50; import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.Scanner; /**
* @author VellBibi
*【程序24】TestNumber.java
*题目:给一个不多于5位的正整数,要求:一、求它是几位数,二、逆序打印出各位数字。
*/
public class TestNumber { /**
* 分解数字
* @param n
* @return
*/
public static List<Integer> explodeNumber(long n){
List<Integer> l = new ArrayList<Integer>(); 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<Integer> l = explodeNumber(n);
System.out.println("它是"+l.size()+"位数");
Iterator<Integer> it = l.iterator();
while(it.hasNext()){
System.out.print(it.next());
}
}
}
【程序25】 HuiWenShu.java
题目:一个5位数,判断它是不是回文数。即12321是回文数,个位与万位相同,十位与千位相同。
javapackage test50; import java.util.ArrayList;
import java.util.List;
import java.util.Scanner; /**
* @author VellBibi
*【程序25】 HuiWenShu.java
*题目:一个5位数,判断它是不是回文数。即12321是回文数,个位与万位相同,十位与千位相同。
*/
public class HuiWenShu { /**
* 分解数字
* @param n
* @return
*/
public static List<Integer> explodeNumber(long n){
List<Integer> l = new ArrayList<Integer>(); 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<Integer> 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("是回文");
}
}
50道经典的JAVA编程题(21-25)的更多相关文章
- 50道经典的JAVA编程题 (16-20)
50道经典的JAVA编程题 (16-20),用了快一个下午来做这10道题了,整理博客的时间貌似大于编程的时间啊..哈哈 [程序16]Nine.java 题目:输出9*9口诀. 1.程序分析:分行与列考 ...
- 50道经典的JAVA编程题(汇总)
这是一次不可思议的编程历程.从2013年的最后一天开始做这份题,中间连续好几天的考试,包括java考试(今天考试的JAVA编程题),直到今天完成了.挺有成就感的...废话不多说了,来电实质性的吧. 全 ...
- 50道经典的JAVA编程题(46-50)
50道经典的JAVA编程题(46-50),最后五道题了,这是一个美妙的过程,编程真的能让我忘掉一切投入其中,感觉很棒.今天下午考完微机原理了,大三上学期就这样度过了,这学期算是解放了,可是感觉我还是没 ...
- 50道经典的JAVA编程题(41-45)
50道经典的JAVA编程题(41-45),苦逼的程序猿,晚上睡不着了编程吧~今天坚持做10道题!发现编程能是我快乐...O(∩_∩)O哈哈~能平静我烦乱的心,剩下5道题留到考试完了再做吧!该睡觉了.. ...
- 50道经典的JAVA编程题(36-40)
50道经典的JAVA编程题(36-40),今天晚上心情压抑,不爽,继续做题,管它明天考试,我继续我的java,一个周末都在看微机原理看得的很头疼啊~明天该挂科就挂吧,不在乎了~~~ [程序36] Ar ...
- 50道经典的JAVA编程题(31-35)
50道经典的JAVA编程题(31-35),今天考完了java,在前篇博客里面贴出了题了,见:<今天考试的JAVA编程题>.考完了也轻松了,下个星期一还考微机原理呢,啥都不会,估计今天就做到 ...
- 50道经典的JAVA编程题(26-30)
50道经典的JAVA编程题(26-30),这么晚了,早点睡了要,明早8点考java祝我好运吧!!!晚安~ [程序26]Ex26.java(跳过了,好没意思的题啊)题目:请输入星期几的第一个字母来判断一 ...
- 50道经典的JAVA编程题 (11-15)
50道经典的JAVA编程题 (11-15),新年的第一天,继续啦...\(^o^)/~,这50道题都跨年了啊...哈哈 [程序11] TestTN.java 题目:有1.2.3.4个数字,能组成多少个 ...
- 50道经典的JAVA编程题 (6-10)
50道经典的JAVA编程题 (6-10),今晚做了10道了,累死了...感觉难度不是很大,就是不知道是不是最好的实现方法啊!希望大神们能给指点哈... [程序6]GCDAndLCM.java 题目:输 ...
随机推荐
- 如何将word中上下两行文字对齐?
一.问题来源及描述 本科毕设的时候积累的问题,整理如下. 红头文件下面的署名,上下要对齐. 二.解决办法 经验证,第一次拉标尺要把标尺放在第一行的光标处,为了换行后,再次enter,tab后到与上一行 ...
- [转载]WCF序列化65536大小限制的问题
错误: The formatter threw an exception while trying to deserialize the message: There was an error whi ...
- 字符串转到js对象
var obj = (new Function("return " + str))();
- onClick(View) of type new View.OnClickListener(){} must override a superclass method
原地址:http://blog.csdn.net/aeolus1019/article/details/8014798 Android开发过程中代码错误报错如下: - implements andro ...
- Creating a new Signiant Transfer Engine because the previous transfer had to be canceled.
From: http://stackoverflow.com/questions/10548196/application-loader-new-weird-warning-about-signian ...
- nginx面试题
1.Nginx是如何实现高并发的 service nginx start之后,然后输入#ps -ef|grep nginx,会发现Nginx有一个master进程和若干个worker进程,这些work ...
- laravel的解决方案
对form表单批量去掉前后空格trim: $request->merge(array_map('trim', $request->all())); 或 Input::merge(array ...
- profile工具
gprof callgrind vtune(待使用) ----time命令(待学习) ps -u <username> -H -opid,cmd strace
- Git教程(3)命令行使用git简单示例
基础 Git系统下的的文件有3种状态: 已修改(modified):已修改表示修改了文件,但还没保存到数据库中. 已暂存(staged) : 已暂存表示对一个已修改文件的当前版本做了标记,使之包含在下 ...
- 十个免费的Web压力测试工具
两天,jnj在本站发布了<如何在低速率网络中测试 Web 应用>,那是测试网络不好的情况.而下面是十个免费的可以用来进行Web的负载/压力测试的工具,这样,你就可以知道你的服务器以及你的W ...





