Java面试编程题【精选】

Java面试编程题【精选】

【程序1】
题目:古典问题:有一对兔子,从出生后第3 个月起每个月都生一对兔子,小兔子长到第三个月后每个月
又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?
//这是一个菲波拉契数列问题
解题思路:1 1 2 3 5 8 13…… 将第一月、第二月单独拿出来输出,然后以后每个数字都是前面两个的和。就直接输出就是了。用到 if - else 判断输入的月数。

【程序2】
题目:判断101-200 之间有多少个素数,并输出所有素数。
程序分析:判断素数的方法:用一个数分别去除2 到sqrt(这个数),如果能被整除, 则表明
此数不是素数,反之是素数。
解题思路:用到两个 for 循环,一个用来控制 101-200 的每一个数字,一个用来给每一个数字做除法,在里面做除法,如果能整除则设置这个标记这个数就跳出,过后再判断是不是进了这个判断中 count++,输出这个数。这里可以设置一个标记,默认是素数。

【程序3】
题目:打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和
等于该数本身。例如:153 是一个"水仙花数",因为153=1 的三次方+5 的三次方+3 的
三次方。
解决思路:用一个 for 循环在三位数中,用 / % 取出这个数的个位,十位,百位,再 if 一下,输出这个数字即可。

【程序4】
题目:将一个正整数分解质因数。例如:输入90,打印出90=233*5。
程序分析:对n 进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成:
(1)如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可。
(2)如果n <> k,但n 能被k 整除,则应打印出k 的值,并用n 除以k 的商,作为新的正整数
你n,重复执行第一步。
(3)如果n 不能被k 整除,则用k+1 作为k 的值,重复执行第一步。
解决思路:用一个 for 将输入的数字从 2 开始循环下去(变化也就是2—5左右,因为最大数会一直被除到最小),其实主要是后面的while 在变化,一个 while 将这个变化后的数字与for 的数字比较是否相等不等,就一个 if 判断等于 0 的情况输出质数并改变这个数字的值(除以质数),不等于 0 就break 掉这个while。for 完后,就将最后的这个数字输出来。

【程序5】
题目:利用条件运算符的嵌套来完成此题:学习成绩> =90 分的同学用A 表示,60-89 分之
间的用B 表示,60 分以下的用C 表示。
解题思路:用三元表达式

【程序6】
题目:输入两个正整数m 和n,求其最大公约数和最小公倍数。
/*在循环中,只要除数不等于0,用较大数除以较小的数,将小的一个数作为下一轮循环的
大数,取得的余数作为下一轮循环的较小的数,如此循环直到较小的数的值为0,返回较大
的数,此数即为最大公约数,最小公倍数为两数之积除以最大公约数。
/

【程序7】
题目:输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。

【程序8】
题目:求s=a+aa+aaa+aaaa+aa…a 的值,其中a 是一个数字。例如2+22+222+2222+22222(此
时共有5 个数相加),几个数相加有键盘控制。

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

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

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值