java程序分析题 编程题?

50道经典的JAVA编程题 (6-10),今晚做了10道了,累死了。。。感觉难度不是很大,就是不知道是不是最好的实现方法啊!希望大神们能给指点哈。。。


题目:输入两个正整数m和n,求其最大公约数和最小公倍数。
1.程序分析:利用辗除法。
2.辗转相除法基于如下原理:两个整数的最大公约数等于其中较小的数和两数的相除余数的最大公约数。
3.最小公倍数等于两数之积除以最大公约数

 *题目:输入两个正整数m和n,求其最大公约数和最小公倍数。 
 *1.程序分析:利用辗除法。 
 *2.辗转相除法基于如下原理:两个整数的最大公约数等于其中较小的数和两数的相除余数的最大公约数。 
 *3.最小公倍数等于两数之积除以最大公约数
 
 * 最大公约数普通求法
 
 
 * 最大公约数辗转相除法
 
 
 


题目:输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。
1.程序分析:利用循环,使用Map存储数据.其实完全可以使用4个变量来解决,这边舍近求远复习下Map啦

 *题目:输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。 
 *1.程序分析:利用循环,使用Map存储数据.其实完全可以使用4个变量来解决,这边舍近求远复习下Map啦
 
 


题目:求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。例如2+22+222+(此时共有5个数相加),几个数相加有键盘控制。
1.程序分析:关键是计算出每一项的值。

 *题目:求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。例如2+22+222+(此时共有5个数相加),几个数相加有键盘控制。 
 *1.程序分析:关键是计算出每一项的值。
 
 


题目:一个数如果恰好等于它的因子之和,这个数就称为"完数"。例如6=1+2+3.编程 找出1000以内的所有完数。

 *题目:一个数如果恰好等于它的因子之和,这个数就称为"完数"。例如6=1+2+3.编程 找出1000以内的所有完数。
 


题目:一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第10次落地时,共经过多少米?第10次反弹多高?

 *题目:一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第10次落地时,共经过多少米?第10次反弹多高?
 *1.程序分析:递归实现
 

16 Matcher类的构造方法也是private的所以也是通过调用方法来创建的. 17 Matcher.matches()是必须全部匹配,待匹配的字符按串在目标模板里全都有

4.输入 3 个正数,判断能否构成一个三角形

思路:任意两边之和大于第三边,使用&&

5.编写程序,对输入的年、月、日,给出该天是该年的第多少天

思路:需要根据月份将前面所有月的天数相加再加上该月天数得到结果,每年有12个月,数量较多,结构选择switch结构,需要注意的是平年与闰年的2月天数不同,需要根据年数对4和400取整是否为0确定。

根据年月日计算第多少天

6.编写程序,从键盘输入一个 0~99999 之间的任意数,判断输入的数是几位数?

思路一:使用if else条件结构嵌套根据数字对1000,100,10取整确定位数。

思路二:将输入的整数以字符串的形式存储,输出字符串长度。

7.编写程序,给定一个学生成绩,给出相应等级:

 思路:与上题类似,不再赘述。

8.编写程序,对输入的一个整数,按相反顺序输出该数。例如,输入为 3578,输出为 8753

思路:将输入的整数以字符串的形式存储,将每一位视作字符,以输入顺序的逆序输出。

更简单的方法:将输入的整数转化为字符串,使用reverse()将字符串顺序翻转。

思路:1~200的数依次判断能否被3整除,如果可以就相加,如果不行则自增。

第一次编写的错误代码及错误解析。

7 }else { //else语句是在if后的判定语句不成立的情况下才运行,而不管i能否被3整除i都应该自增要弄清单if和if else的区别

10.编写程序,输出 200~500 之间的所有素数

思路:素数只能被1和它本身整除,判断一个数i是否为素数,可以用一个数j对它进行测试,如果 i%j == 0 ,而 j 又不是 1 或 它本身, 那么这个数就不是素数;如果 i%j != 0 ,那么 j 一直增加下去,看 j 能不能有一个值可以整除 i , 如果 j是一个素数,那么j可以一直增加到 i 为止,这样就可以看出它是不是素数了

7 if (i%j==0){ //一旦出现整除则i不是质数,跳出j自增的循环,进入i自增的循环,检验i+1

11.编写程序解决“百钱买百鸡”问题。公鸡五钱一只,母鸡三钱一只,小鸡一钱三只,现有百钱欲买百鸡,共有多少种买法?

12.使用循环语句输出下面的图形。

思路:循环嵌套,一个循环控制换行,一个 循环控制每一行输出#的个数

13.验证“鬼谷猜想”:对任意自然数,若是奇数,就对它乘以 3 再加 1;若是偶数,就对它除以 2,这样得到一个新数,再按上述计算规则进行计算,一直进行下去,最终必然得到 1

思路:使用while循环控制算法进行直到得到1为止,使用if else结构控制为奇数和偶数的运算。

14.编程求 1~10000 之间的所有“完全数”,完全数是该数的所有因子之和等于该数的数。例如,6 的因子有 1、2、3,且 6=1+2+3,所以 6 是完全数

思路:将功能分开写,分解因数并判定的功能写在函数里,在主函数中调用

15.一个整数的各位数字之和能被 9 整除,则该数也能被 9 整除。编程验证给定的整数能否被 9 整除。

思路:将输入的数字以字符串存储,将字符串转换成整型数组,将数组求和再对9取余

12 substring(i,i+1)表示截取字符串从第i各到第i+1各字符,包含起始位置不包含结束位置

16.猴子吃桃问题。猴子第一天摘下若干个桃子,当时就吃了一半,还不过瘾,就又吃了一个。第二天又将剩下的桃子吃掉一半,又多吃了一个。以后每天都吃前一天剩下的一半零一个。到第 10 天在想吃的时候就剩一个桃子了,求第一天共摘下来多少个桃子?

17.水仙花数是指一个 n 位数 ( n≥3 ),它的每个位上的数字的 n 次幂之和等于它本身。(例如:1^3 + 5^3 + 3^3 = 153)。编程求出所有三位的水仙花数。

19.古典问题:有一对兔子,从出生后第 3 个月起每个月都生一对兔子,小兔

子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数

思路:第一个月,第二个月兔子总数为2,第三个月为4,第四个月为6,这是一个斐波那契(Fibonacci)数列,某一项等于相邻前两项的和(n3=n2+n1),可以使用递归和非递归的思路实现。

20.将一个正整数分解质因数。例如:输入 90,打印出 90=2*3*3*5

思路:从2开始到num,找num的因数,若找到一个就一直除,除到无法再被该因数整除时就往后找新的因数直到没有因数。

我要回帖

更多关于 java程序分析题 的文章

 

随机推荐