文档介绍:《 Java 经典算法》-百度文库(制作: 19511953) 1 Java 经典问题算法大全/* 【程序 1】题目: 古典问题: 有一对兔子, 从出生后第 3 个月起每个月都生一对兔子, 小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? 1. 程序分析: 兔子的规律为数列 1,1,2,3,5,8,13,21.... */ /* 【程序 2】题目:判断 101-200 之间有多少个素数,并输出所有素数。 1. 程序分析:判断素数的方法:用一个数分别去除 2到 sqrt( 这个数) ,如果能被整除, 则表明此数不是素数,反之是素数。*/ /* 【程序 3】题目:打印出所有的" 水仙花数(narcissus number)" ,所谓" 水仙花数" 是指一个三位数, 其各位数字立方和等于该数本身。例如: 153 是一个" 水仙花数", 因为 153=1 的三次方+ 5 的三次方+ 3 的三次方。 1. 程序分析:利用 for 循环控制 100-999 个数,每个数分解出个位,十位,百位。*/ /* 【程序 4】题目:将一个正整数分解质因数。例如:输入 90, 打印出 90=2*3*3*5 。程序分析:对 n 进行分解质因数,应先找到一个最小的质数 k ,然后按下述步骤完成: (1) 如果这个质数恰等于 n ,则说明分解质因数的过程已经结束,打印出即可。(2) 如果 n>k ,但n 能被 k 整除, 则应打印出 k 的值, 并用 n 除以 k 的商, 作为新的正整数你 n, 重复执行第一步。(3) 如果 n 不能被 k 整除,则用 k+1 作为 k 的值, 重复执行第一步。*/ /* 【程序 5】题目:利用条件运算符的嵌套来完成此题:学习成绩>=90 分的同学用 A 表示, 60-89 分之间的用 B 表示, 60 分以下的用 C 表示。 1. 程序分析: (a>b)?a:b 这是条件运算符的基本例子。*/ /* 【程序 6】题目:输入两个正整数 m和n ,求其最大公约数和最小公倍数。 1. 程序分析:利用辗除法。*/ /* * 在循环中, 只要除数不等于 0, 用较大数除以较小的数, 将小的一个数作为下一轮循环的大数,取得的余数作为下一轮循环的较小的数,如此循环直到较小的数的值为 0 ,返回* 较大的数,此数即为最小公约数,最小公倍数为两数之积除以最小公倍数。* */ /* 【程序 7】题目:输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。 1. 程序分析:利用 while 语句, 条件为输入的字符不为'\n '. */ /* 【程序 8】题目: 求 s=a+aa+aaa+aaaa+aa...a 的值, 其中 a 是一个数字。例如 2+22+222+2222+22222( 此时共有 5 个数相加) ,几个数相加有键盘控制。*/ /* 《 Java 经典算法》-百度文库(制作: 19511953) 2 * 算法: 定义一个变量 b, 赋初值为 0 ;定义一变量 sum , 赋初值为 0, * 进入循环后,将 a+b 的值赋给 b ,将 sum +b 的值赋给 sum ; * 同时,将 a 增加十倍, ++ i; 继续循环; * 循环结束后,输出 sum 的值。*/ /* 【程序 9】题目: 一个数如果恰好等