Java经典逻辑编程50题

上传人:tang****xu1 文档编号:132723720 上传时间:2020-05-19 格式:DOC 页数:35 大小:320KB
返回 下载 相关 举报
Java经典逻辑编程50题_第1页
第1页 / 共35页
Java经典逻辑编程50题_第2页
第2页 / 共35页
Java经典逻辑编程50题_第3页
第3页 / 共35页
Java经典逻辑编程50题_第4页
第4页 / 共35页
Java经典逻辑编程50题_第5页
第5页 / 共35页
点击查看更多>>
资源描述

《Java经典逻辑编程50题》由会员分享,可在线阅读,更多相关《Java经典逻辑编程50题(35页珍藏版)》请在金锄头文库上搜索。

1、Java经典逻辑编程50题【程序1】 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? 1) 程序分析:兔子的规律为数列1,1,2,3,5,8,13,21. (斐波那契数列)2) 参考代码importjava.util.Scanner;publicclassRabbitNum publicstaticvoidmain(String args) Scanner in = newScanner(System.in);System.out.println(你想知道前几个月的兔子的数量);intmont

2、h = in.nextInt();int mon = newintmonth;if(month 3)System.out.println(第+ month + 个月有 1 对兔子,共 2 只);elsefor(inti = 2; i month; i+)mon0 = mon1 = 1;moni = moni - 1 + moni - 2;System.out.printf(第 %d 个月有 %d 对兔子,共 %d 只兔子n, i + 1, moni, 2* moni);【程序2】 题目:判断101-200之间有多少个素数,并输出所有素数。 1 ) 程序分析:判断素数的方法:用一个数分别去除2到

3、sqrt(这个数),如果能被整除, 则表明此数不是素数,反之是素数。 (java.lang.Math.sqrt(double a)返回正确舍入的一个double值的正平方根)2) 参考代码publicclassPrime publicstaticvoidmain(String args) System.out.print(101-200中的素数有:);for(inti = 101; i = 200; i+)if(isPrime(i)System.out.print( + i);/isPrime方法用来判断一个数是否是素数privatestaticbooleanisPrime(inti) for

4、(intj = 2; j = Math.sqrt(i); j+)if(i % j = 0)returnfalse;returntrue;【程序3】 题目:打印出所有的 水仙花数 ,所谓 水仙花数 是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个 水仙花数 ,因为153=1的三次方5的三次方3的三次方。1 ) 程序分析:利用for循环控制100-999个数,每个数分解出个位,十位,百位。 2) 参考代码publicclassNarcissisticNum publicstaticvoidmain(String args) System.out.print(水仙花数有:);for(

5、intnum = 100; num 1000; num+)if(isNarcissisticNum(num)System.out.println( + num);/一个判断正整数是否为水仙花数的方法privatestaticbooleanisNarcissisticNum(intnum) / TODO Auto-generated method stubinta = num / 100;/分离出百位 aintb = (num / 10) % 10;/分离出十位 bintc = num % 10;/分离出个位 cintsum = a * a * a + b * b * b + c * c * c

6、;if(sum = num)returntrue;elsereturnfalse;【程序4】题目:将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。程序分析:对n进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成:(1)如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可。(2)如果nk,但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数你n,重复执行第一步。(3)如果n不能被k整除,则用k+1作为k的值,重复执行第一步。参考代码:importjava.util.Scanner;publicclassPrimeFactorOfIntege

7、r publicstaticvoidmain(String args) Scanner input = newScanner(System.in);System.out.println(请输入一个大于 3 的正整数);intnum = input.nextInt();System.out.print(num + 的素因数:);factor(num);privatestaticvoidfactor(intnum) for(inti = 2; i = Math.sqrt(num); i+)if(num % i = 0)System.out.print(i + * );if(isPrime(num

8、/ i)System.out.println(num / i);elsefactor(num / i);break;privatestaticbooleanisPrime(inti) for(intj = 2; j =90分的同学用A表示,60-89分之间的用B表示,60分以下的用C表示。1. 程序分析:(ab)?a:b这是条件运算符的基本例子。参考代码importjava.util.Scanner;publicclassConditionalOperator publicstaticvoidmain(String args) Scanner in = newScanner(System.in

9、);System.out.println(请输入你的分数);intscore = in.nextInt();if(score = 90)System.out.println(A 恭喜);elseif(score = 60)System.out.println(B 不错);elseSystem.out.println(C 加油);【程序6】题目:输入两个正整数m和n,求其最大公约数和最小公倍数。1.程序分析:利用辗除法。参考代码importjava.util.Scanner;publicclassExample6 publicstaticvoidmain(String args) Scanner

10、 in = newScanner(System.in);System.out.println(请输入第一个数);inta = in.nextInt();System.out.println(请输入第二个数);intb = in.nextInt();System.out.println(这两个数的最大公约数是 + MaxCommonDivisor(a, b);System.out.println(这两个数的最小公倍数是 + MinCommonMultiple(a, b);privatestaticintMaxCommonDivisor(inta, intb) if(a b)inttemp = a;a = b;b = temp;while(a % b != 0)inttemp = a % b;a = b;b = temp;returnb;privatestaticintMinCommonMultiple(inta, intb) returna * b / MaxCommonDivisor(a, b);【程序7】题目:输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。1. 程序分析:利用while语句,条件为输入的字符不为n.参考代码importjava.ut

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 商业/管理/HR > 商业计划书

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号