Java经典逻辑编程50题 .doc
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《Java经典逻辑编程50题 .doc》由会员分享,可在线阅读,更多相关《Java经典逻辑编程50题 .doc(37页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、Java经典逻辑编程50题【程序1】 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? 1) 程序分析:兔子的规律为数列1,1,2,3,5,8,13,21. (斐波那契数列)2) 参考代码import .Scanner;public class RabbitNum public static void main(String args) Scanner in = new Scanner();.println(你想知道前几个月的兔子的数量);int month = in.nextInt();int
2、 mon = new intmonth;if(month 3).println(第 + month + 个月有 1 对兔子,共 2 只);elsefor(int i = 2; i month; i+)mon0 = mon1 = 1;moni = moni - 1 + moni - 2;.printf(第 %d 个月有 %d 对兔子,共 %d 只兔子n, i + 1, moni, 2 * moni);【程序2】 题目:判断101-200之间有多少个素数,并输出所有素数。 1 ) 程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除, 则表明此数不是素数,反之是素数。 (
3、.(double a)返回正确舍入的一个double值的正平方根)2) 参考代码public class Prime public static void main(String args) .print(101-200中的素数有:);for(int i = 101; i = 200; i+)if(isPrime(i).print( + i);/isPrime方法用来判断一个数是否是素数private static boolean isPrime(int i) for(int j = 2; j = (i); j+)if(i % j = 0)return false;return true;【程
4、序3】 题目:打印出所有的 水仙花数 ,所谓 水仙花数 是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个 水仙花数 ,因为153=1的三次方5的三次方3的三次方。1 ) 程序分析:利用for循环控制100-999个数,每个数分解出个位,十位,百位。 2) 参考代码public class NarcissisticNum public static void main(String args) .print(水仙花数有:);for(int num = 100; num 1000; num+)if(isNarcissisticNum(num).println( + num);/一个
5、判断正整数是否为水仙花数的方法private static boolean isNarcissisticNum(int num) / TODO Auto-generated method stubint a = num / 100; /分离出百位 aint b = (num / 10) % 10; /分离出十位 bint c = num % 10; /分离出个位 cint sum = a * a * a + b * b * b + c * c * c;if(sum = num)return true;elsereturn false;【程序4】题目:将一个正整数分解质因数。例如:输入90,打印
6、出90=2*3*3*5。程序分析:对n进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成:(1)如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可。(2)如果nk,但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数你n,重复执行第一步。(3)如果n不能被k整除,则用k+1作为k的值,重复执行第一步。参考代码:import .Scanner;public class PrimeFactorOfInteger public static void main(String args) Scanner input = new Scanner();.println
7、(请输入一个大于 3 的正整数);int num = nt();.print(num + 的素因数:);factor(num);private static void factor(int num) for(int i = 2; i = (num); i+)if(num % i = 0).print(i + * );if(isPrime(num / i).println(num / i);elsefactor(num / i);break;private static boolean isPrime(int i) for(int j = 2; j =90分的同学用A表示,60-89分之间的用B
8、表示,60分以下的用C表示。1. 程序分析:(ab)?a:b这是条件运算符的基本例子。参考代码import .Scanner;public class ConditionalOperator public static void main(String args) Scanner in = new Scanner();.println(请输入你的分数);int score = in.nextInt();if(score = 90).println(A 恭喜);else if(score = 60).println(B 不错);else.println(C 加油);【程序6】题目:输入两个正整数
9、m和n,求其最大公约数和最小公倍数。1.程序分析:利用辗除法。参考代码import .Scanner;public class Example6 public static void main(String args) Scanner in = new Scanner();.println(请输入第一个数);int a = in.nextInt();.println(请输入第二个数);int b = in.nextInt();.println(这两个数的最大公约数是 + MaxCommonDivisor(a, b);.println(这两个数的最小公倍数是 + MinCommonMultipl
10、e(a, b);private static int MaxCommonDivisor(int a, int b) if(a b)int temp = a;a = b;b = temp;while(a % b != 0)int temp = a % b;a = b;b = temp;return b;private static int MinCommonMultiple(int a, int b) return a * b / MaxCommonDivisor(a, b);【程序7】题目:输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。1. 程序分析:利用while语句,条
11、件为输入的字符不为n.参考代码import .Scanner;public class Statistic public static void main(String args)Scanner in = new Scanner();.println(Input one sentance.);String s = in.nextLine();int letter = 0, symbol = 0, space = 0, number = 0;char strArray = s.toCharArray();for (int i = 0; i h; i+)char c = strArrayi;if(
12、a = c & c = z) | (A = c & c = Z)letter+;else if(48 = c & c = 57) /注意!数字0-9的ASCII码是48-57number+;else if(c = )space+;elsesymbol+;.println(This sentance have + letter + letters, );.println(have + number + numbers, );.println(have + space + spaces, + and + symbol + symbols.);【程序8】题目:求s=a+aa+aaa+aaaa+aa.
13、a的值,其中a是一个数字。例如2+22+222+2222+22222(此时共有5个数相加),几个数相加有键盘控制。1.程序分析:关键是计算出每一项的值。参考代码import .Scanner;public class Example8 public static void main(String args) Scanner input = new Scanner();.println(请输入相加的基数);int n = nt();.println(请输入要相加的个数);int i = nt();long total = 0L;long temp = n;for(int j = 0; j i;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Java经典逻辑编程50题 Java 经典 逻辑 编程 50
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内