java经典基础算法编程20

上传人:xiao****1972 文档编号:83806070 上传时间:2019-03-01 格式:DOC 页数:46 大小:148.50KB
返回 下载 相关 举报
java经典基础算法编程20_第1页
第1页 / 共46页
java经典基础算法编程20_第2页
第2页 / 共46页
java经典基础算法编程20_第3页
第3页 / 共46页
java经典基础算法编程20_第4页
第4页 / 共46页
java经典基础算法编程20_第5页
第5页 / 共46页
点击查看更多>>
资源描述

《java经典基础算法编程20》由会员分享,可在线阅读,更多相关《java经典基础算法编程20(46页珍藏版)》请在金锄头文库上搜索。

1、Java经典问题算法大全/*【程序1】题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? 1.程序分析: 兔子的规律为数列1,1,2,3,5,8,13,21. */package .flywater.FiftyAlgorthm;public class FirstRabbit public static final int MONTH = 15;public static void main(String args) long f1 = 1L, f2 = 1L; long f; for(int i

2、=3; iMONTH; i+) f = f2; f2 = f1 + f2; f1 = f; System.out.print(第 + i +个月的兔子对数: ); System.out.println( + f2); /*【程序2】 * 作者 若水飞天题目:判断101-200之间有多少个素数,并输出所有素数。 1.程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除, 则表明此数不是素数,反之是素数。 */package .flywater.FiftyAlgorthm;public class SecondPrimeNumber public static int c

3、ount = 0;public static void main(String args) for(int i=101;i200;i+) boolean b = true;/默认此数就素数 for(int j=2;j=Math.sqrt(i);j+) if(i%j=0) b = false; /此数不是素数 break; if(b) count+; System.out.print(i+ ); System.out.println(n素数的个数:+count); /*【程序3】作者 若水飞天题目:打印出所有的水仙花数(narcissus number),所谓水仙花数是指一个三位数,其各位数字立

4、方和等于该数本身。例如:153是一个水仙花数,因为153=1的三次方5的三次方3的三次方。 1.程序分析:利用for循环控制100-999个数,每个数分解出个位,十位,百位。 */package .flywater.FiftyAlgorthm;public class ThirdNarcissusNum static int b, bb, bbb;public static void main(String args) for(int num=101; numk,但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数你n,重复执行第一步。 (3)如果n不能被k整除,则用k+1作为k

5、的值,重复执行第一步。 */package .flywater.FiftyAlgorthm;import java.util.Scanner;public class FourthPrimeFactor static int n, k = 2;public static void main(String args) Scanner s = new Scanner(System.in); n = s.nextInt(); System.out.print(n + = ); FourthPrimeFactor fpf = new FourthPrimeFactor(); fpf.f(n);publ

6、ic void f(int n) while(k k & n % k = 0) System.out.print(k + *); n = n / k; f(n); break; else if(n k & n % k != 0) k+; f(n); break; /*【程序5】作者 若水飞天题目:利用条件运算符的嵌套来完成此题:学习成绩=90分的同学用A表示,60-89分之间的用B表示,60分以下的用C表示。 1.程序分析:(ab)?a:b这是条件运算符的基本例子。 */package .flywater.FiftyAlgorthm;import java.util.Scanner;publi

7、c class FifthCondition /public static final int S1 = 90;/public static final int S2 = 60;static int grade;public static void main(String args) Scanner str = new Scanner(System.in); int s = str.nextInt(); FifthCondition fc = new FifthCondition(); grade = pare(s); if(grade = 1) System.out.print(A); el

8、se if(grade = 2) System.out.print(B); else System.out.println(C); public int compare(int s) return s 90 ? 1 : s 60 ? 2 :3;/*【程序6】作者 若水飞天题目:输入两个正整数m和n,求其最大公约数和最小公倍数。 1.程序分析:利用辗除法。 */* * 在循环中,只要除数不等于0,用较大数除以较小的数,将小的一个数作为下一轮循环的大数,取得的余数作为下一轮循环的较小的数,如此循环直到较小的数的值为0,返回* 较大的数,此数即为最小公约数,最小公倍数为两数之积除以最小公倍数。* *

9、/package .flywater.FiftyAlgorthm;import java.util.Scanner;public class SixthCommonDiviser public static void main(String args) int a, b; Scanner s1 = new Scanner(System.in); Scanner s2 = new Scanner(System.in); a = s1.nextInt(); b = s2.nextInt(); SixthCommonDiviser scd = new SixthCommonDiviser(); in

10、t m = scd.division(a, b); int n = a * b / m; System.out.println(最大公约数: + m); System.out.println(最小公倍数: + n);public int division(int x, int y) int t; if(x y) t = x; x = y; y = t; while(y != 0) if(x = y) return 1; else int k = x % y; x = y; y = k; return x;/*【程序7】作者 若水飞天题目:输入一行字符,分别统计出其中英文字母、空格、数字和其它字

11、符的个数。 1.程序分析:利用while语句,条件为输入的字符不为 n . */package .flywater.FiftyAlgorthm;import java.util.*;public class SeventhCharacterStatistics static int digital = 0;static int character = 0;static int other = 0;static int blank = 0;public static void main(String args) char ch = null; Scanner sc = new Scanner(System.in); String s = sc.nextLine(); ch = s.toCharArray(); for(int i=0; i= 0 & chi = a & chi A & chi = Z) character +

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

当前位置:首页 > 大杂烩/其它

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