当前位置:网站首页 > Java基础 > 正文

java基础50道



 道  基础编程训练
【程序 】
题目:古典问题:有一对兔子,从出生后第 个月起每个月都生一对兔子,小兔子长到第三个月后每个月
又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?
程序分析:兔子的规律为数列 
解答:
(方法一)
利用数学分析可得知:这个月的兔子数量为前两个月的兔子数量之和,推导过程如下:
,
,

,
,

,
,
:表示一个月大的兔子;
表示两个月大的兔子;
表示三个月及三月以上的兔子。
有以下数学表达式:



,


,





,


,















因此上面每个月的兔子的数量满足斐波那契数列。编程实现较为简单,此处省略。
(方法二)
方法二利用编程实现,具有一般性(开始兔子个数和产仔周期可自行输入),程序设计如下:
【程序 】
题目:判断  之间有多少个素数,并输出所有素数。
 程序分析:判断素数的方法:用一个数分别去除 到  这个数,如果能被整除,
则表明此数不是素数,反之是素数。
解答:
程序如下:
【程序 】
题目:打印出所有的 水仙花数 ,所谓 水仙花数 是指一个三位数,其各位数字立方和等于该数本身。例
如:
 是一个水仙花数,因为  的三次方+ 的三次方+ 的三次方。
 程序分析:利用  循环控制  个数,每个数分解出个位,十位,百位。
解答:
程序如下:
【程序 】
题目:将一个正整数分解质因数。例如:输入 打印出 。
解答:
分析:对 进行分解质因数,应先找到一个最小的质数 ,然后按下述步骤完成:
 如果这个质数恰等于 ,则说明分解质因数的过程已经结束,打印出即可。
 如果 ! ,但 能被 整除,则应打印出 的值,并用 除以 的商作为新的正整数你  重复执行第一
步。
 如果 不能被 整除,则用  作为 的值重复执行第一步。
【程序 】
题目:利用条件运算符的嵌套来完成此题:学习成绩 ! 分的同学用 表示, " 分之间的用 # 表示,
" 分以下的用 $ 表示。
解答:
【程序 "】
题目:输入两个正整数 % 和 ,求其最大公约数和最小公倍数。
& 求最大公约数!
算法( 1)设计:
E0.[ 确保 mErr or: R e ference sour ce not found n] 若 mErr or: R eference source not found n ,则
mErr or: R efer ence sourc e not foundn 。
E1.[ 求余数] 以 n 除 m 并令 r 为所得余数。(我们将有 0Err or: Refer ence source not found rErr or :
R efere nce source not foundn 。)
E2.[ 余数为 0?] 若 r 为 0 ,算法结束,n 即为所求答案。
E3.[ 减少] 置 mErr or: Re ference source not f oundn ,nErr or: Refer ence source not f oundr ,并
返回步骤 E1。
数学证明:
(1) 若 m%n=0 ,则 n 为所求最大公因子
(2) 若 m%nErr or: R e ference sourc e not found 0 ,则只需证明下面命题成立
如果某数是 n 与 m%n 的 最大公因子,则这 个数也是 m 和 n 的 最大公因子。 (上面算 法可化为这
句话 )
证明:
假设 a 是 n 和 m%n 的最大公因子,则有:
因 有 (m%n)%a=0 , 故 可 设 m
%n=k*a , k 为 正 整 数 。 又 n
%a=0 ,故可设 n=p*a ,p 也为正整数。
可得数学表达式: m=t*n+m%n,其中 t 为不小于 0 的整数。
因此有: m=t*p*a+k*a=(t*p+k)*a,因此可得 m%a=0
因此有如下两个表达式:
a 为 m 和 n 的公因子已经证毕。
如 何 确 定 a 为 m 和 n 的 最 大 公 因 子
(可用反证法证明)
证明:
假设 m 和 n 存在公因子 b,且有 b>a。
则有 :
可以仿照上面的推导过程得出:
则 b 也 是 n 和 m%n 的 公 因 子 ,
又 b>a, 与 a 是 n 和 m%n 的 最 大
公因子矛盾。
综上,如果某数是 n 与 m%n 的最大公因子,则这个数也是 m 和 n 的最大公因子。
(3) 证毕。
对步骤 E0 的分析:
若 m<n , 则 m%n=m 。 当 进 行 E0 后 , m 为 较 大 者 , m%nError: Reference source not
foundn 。
算法( 2)设计:
 余数  以 除 ,并令 为余数。
 它是  如果  ,则此算法以 为答案而终止。
 余数  以 除 ,并令 是余数。
 它是  如果  ,则算法以答案 而终止,否则返回步骤  。
算法( 2)可仿照算法( 1)进行证明
< 求最大公倍数>
算法设计:
F1 :求出 % 和 的较大者,令较大者为 %,较小者为 。
' :判断 % 能否被 整除,若能则 % 为两者最小公倍数。
' :将 分解因式。
' :将 % 依次乘以 的因子,判断乘积能否被 整除,若能则乘积为两者最小公倍数。
根据上面的算法,程序如下:
【程序 (】
题目:输入一行字符,分别统计出其中 英文字 母、空格、数字和其它字符的个数。
解答:
这题需 要对 汉字的 内码进行一定的 了解, 汉字 占两个字 节,每个字 节的开始位为 。程序如下:
【程序 】
题目: 求 ))))))))))))) 的值, 其中 ) 是一 个数字。 例如 此 时共有
个数 相加, 几个数 相加有 键盘控制。
解答:
在此题中,利用进行字符 串运算的 “”运算符,然后将字符 串转为数字,实现 了程序过程,程序设计如下:
【程序 】
题目:一个数如果恰 好等于它的因子之和,这个数 就称为 完数 。例如 "+ + 编程 找出  以 内的
所有完数。
解答:
根据题目 意思,设计程序如下:
【程序 】
java基础50道
题目:一 球从  米高度自 由落下,每次 落地后反 跳回 原高度的一 半; 再落下,求它在 第  次 落地时,
共 经过多少米 ?第  次反弹 多高 ?
解答:
此题较为简单,程序设计如下:
【程序 】
题目:有 、、、 个数字,能 组成多少个 互不 相同且 无重复数字的三位数?都是多少?
解答:
理 解好排 列组合 ,可设计程序如下:
满足条件的三位数是:
234
243
324
342
423
432
134
143
314
341
413
431
124
142
214
241
412
421
123
132
213
231
312
321
【程序 】
题目 : 企业发放的 奖金根据 利 润提成。 利 润*低于 或等于  万元时, 奖金可 提 +;利 润高于  万元,
低 于  万元时 ,低 于  万元 的部 分按 +提 成,高 于  万元 的部 分,可可提 成 (+; 万 到  万 之
间 时, 高于  万元的 部分 ,可 提成 +;  万到 " 万之间 时高于  万元的 部分 ,可 提成 +; " 万到
 万之间时,高于 " 万元的部分,可提成 + ,高于  万元时,超过  万元的部分按 + 提成,
从 键盘输入当月利 润 *,求应 发放奖金总数?
解答:
此题较为简单, 注意定 义时需 把奖金定 义成长整 型。程序设计如下:
【程序 】
题目:一个整数,它 加上  后是一个完 全平方数, 再加上 " 又是一个完 全平方数, 请问该数是多少?
解答:
可先对问题进行 适当分析,分析 情况如下:
假设整数为 ,第一个完 全平方数为 ,,第二个完 全平方数为 -,则有下面的 关系式。
,
"-
将两个式子 相减, 再进行 适当的数学 变形可得: -,-,"
得出可被 " 整除的数(前面已经编程实现),令 -,, -,。
则有 -.( - 需为正整数),则有 --"。则可得出答案。
程序设计如下:(一般性程序,两个数可以自 己输入)
【程序 】
题目:输入某 年某月某 日,判断这一 天是这一 年的第 几天?
解答:
闰年 的判断,可根据以下三点 进行判断。
1 、普通年能被 4 整除且不能被 1 0 0 整除的为闰年。(如 2 0 0 4 年就是闰年, 1 9 0 0 年不是闰年)
2 、世纪年能被 4 0 0 整除的是闰年。( 如 2 0 0 0 年是闰年,1 9 0 0 年不是闰年)
3 、对于数值很大的年份, 这年如果能整除 3 2 0 0 , 并且能整除 1 7 2 8 0 0 则是闰年。如 1 7 2 8 0 0 年是闰
年 ,86400 年 不是闰 年 (因为虽 然能整除 3200,但不能整除 172800)
分 析 : 利 用  类中 进行数据的 读取, 由于是 连续输入而且输入 中有 汉字,故 这 种方法不行 。
程序 设计 需 要改进, 现 利用 isDigit 方 法进 行程 序设 计, 达 到 了较 为 理想的 结 果, 程 序如 下 所示 。
( 此 程 序 中 有 一 段代码是 对 字 符 串中 的 数 字 进 行 提取, 如  年 月 日提取三 个 数 字 分 别 为 :
 、、)
输入 日期: 年月 日
 年月日是这一年的第 天。
输入 日期:  !
 ! 是这一年的第 ! 天。
【程序 】
题目:输入三个整数 /01, 请把这三个数 由小到大输出。
解答:
利用  类中 进行数据的 读取, "#sort进行 排序,程序设计如下:
【程序 "】
题目:输出  口诀。
 程序分析:分行与列考虑,共 行 列,2 控制行,3 控制列。
解答:
此题较为简单,程序设计如下:
【程序 (】
题目 : 猴子 吃桃问题 : 猴子第 一 天摘下若 干个 桃子, 当即 吃了一 半, 还不 瘾, 又多 吃了一个 第二 天早上
又将 剩下的 桃子 吃掉一 半,又多 吃了一个。 以后每 天早上 都 吃了前一 天剩下 的一 半零一个。到第  天早
上 想再吃时, 见只 剩下一个 桃子 了。求第一 天共摘了多少。
解答:
分析: 采取逆向思维的方法,从后 往前推断。
【程序 】
题目:两个 乒乓球队进行 比赛,各出三 人。 甲队为 )45 三 人, 乙队为 /01 三 人。已 抽签决定 比赛名单。
有 人向队员打 听比赛的 名单。 ) 说 他不和 / 比, 5 说 他不和 /1 比, 请编程序找出三 队赛手的 名单。
解答:
分析:
其实问题可 转化为 排列 组合问题, ) 可 以 选 /01 中的一 个, 4 可以 选剩下 两个中的一个 ,而 5 只能 选最后
剩 下的一个,总共 有 " 中可能。关 于排 列的实现可以参 照程序 ,具体 程序如下:
$ % &
a(vs)z b(vs)x c(vs)y
【程序 】
题目:打印出如下 图案( 菱形)
666
66
6

6

  • 上一篇: java必会基础
  • 下一篇: 基础的java项目
  • 版权声明:


    相关文章:

  • java必会基础2025-04-26 16:02:05
  • 零基础java与php哪个好2025-04-26 16:02:05
  • java语言基础实验2025-04-26 16:02:05
  • java基础练习技巧2025-04-26 16:02:05
  • java基础4982025-04-26 16:02:05
  • 基础的java项目2025-04-26 16:02:05
  • java基础枚举2025-04-26 16:02:05
  • java编程基础框架2025-04-26 16:02:05
  • java基础视频学习2025-04-26 16:02:05
  • java基础小题2025-04-26 16:02:05