- 求1+2!+3!+...+20!的和
分析过程:temp变量存阶乘过程中的暂时结果。乘完相加。
运行结果:
反思拓展:这次直接在电脑上新建md文件,与之前在手机上新建不一样,为此还特地去学一下md语法。int类型的数不能存下20!大小,需要long类型变量存储结果。int32只能的最大无符号整型数为2^32-1,注意。
- 利用递归方法求5!。
分析过程:n==1的时候会退出递归,这是递归的结束点。其他条件就是向上递归或向下递归。条件也要相应的做一些改变。
运行结果:
反思拓展:第一次在java中用递归,挺不熟练的。大致结构应该就是这样了吧。
- 有5个人坐在一起,问第五个人多少岁?他说比第4个人大2岁。问第4个人岁数,他说比第3个人大2岁。问第三个人,又说比第2人大两岁。问第2个人,说比第一个人大两岁。最后问第一个人,他说是10岁。请问第五个人多大?
分析过程:for 5次就ok
运行结果
反思拓展:没意思。
- 给一个不多于5位的正整数,要求:一、求它是几位数,二、逆序打印出各位数字。
分析过程:对10取余,除以10后得商成为新数。进入下一轮循环。
运行结果:
反思拓展:之前在leetcode上写到过,用py3写的,比这要复杂点。逆序数首位不能为0。
- 一个5位数,判断它是不是回文数。即12321是回文数,个位与万位相同,十位与千位相同。
分析过程:首尾比较,一直比较到最后,中间的那一位。
运行结果
反思拓展:与py是真的不同,好多东西得自己写。然后逻辑结构也不一样了。
- 请输入星期几的第一个字母来判断一下是星期几,如果第一个字母一样,则继续 判断第二个字母
分析过程:switch语句搞定。
运行结果
反思拓展:啰嗦的代码
28.求100之内的素数.
分析过程:100内的数,只要判断是不是能过被2,3,5,7整除。当大于100时,就不行了。
运行结果
反思拓展:新求的素数,加入到2,3,5,7这样的数组中,在判断后面的数能不能被这个数组内的数整出。
- 对10个数进行排序
分析过程:排序算法有好多种。你知道吗?
运行结果
反思拓展:在最后输出的时候,以空格分隔,使用的是double comma,and single comma will cause another problem.
- 求一个3*3矩阵对角线元素之和
分析过程: 对角线元素分别是第1,5,9元素,并且横纵数字相等。
运行结果
反思拓展:好久没写了,突然特别有感觉。
30.有一个已经排好序的数组。现输入一个数,要求按原来的规律将它插入数组中。
分析过程:对于第一个数,小于它就要插在最前面,对于最后一个数,大于它则插在最后面。中间的部分,左看看,右看看,哪里适合插哪里。
运行结果
反思拓展:一开始写的时候,逻辑不清楚,部分情况重复。实际上,在判断最后一个元素与插入大小,不能写在for里面。但这又算是一种重复。查找元素位置,用对半查找法会更快。还有py几句就能搞定,java写了40多行。