随笔分类 - Java foundation exercises
Java foundation exercises
摘要:冒泡排序(Bubble Sort)是一种简单的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。冒泡排序算法的运作如下:比较相邻的元素。如果第一个比第二个大,就交换他们两个。对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。针对所有的元素重复以上的步骤,除了最后一个。持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。编程实现: 1 public class BubbleSort{ 2 public sta...
阅读全文
摘要:题目:输入两个正整数m和n,求其最大公约数和最小公倍数。1.程序分析:利用辗除法。 编程实现: 1 import java.util.*; 2 3 public class MultipleTest{ 4 public static void main(String args[]){ 5 Scanner scanner = new Scanner(System.in); 6 System.out.println("请输入两个正整数:"); 7 System.out.print("第一个数为:"); 8 int m = s...
阅读全文
摘要:题目:一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在 第10次落地时,共经过多少米?第10次反弹多高?编程实现: 1 public class BallTest{ 2 public static void main(String []agrs){ 3 float sum=100; 4 float high = sum/2; 5 int count; 6 for(count=2; count<=10; count++){ 7 sum += 2*high; //第count次落...
阅读全文
摘要:题目:有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13...求出这个数列的前20项之和。1.程序分析:请抓住分子与分母的变化规律。 编程实现:public class ScoresSum{ public static void main(String args[]){ float sum = 0; int item = 20; int mod = 2; int den = 1; int temp; for(int i=1; i<=item; i++){ sum = sum+mod/den; temp = mol; ...
阅读全文
摘要:题目:打印出如下图案(菱形)。1.程序分析:先把图形分成两部分来看待,前四行一个规律,后三行一个规律,利用双重for循环,第一层控制行,第二层控制列。编程实现:import java.util.*;public class PrintDiamond{ public static void main(String []args){ int line; System.out.print("Please input the lines of a diamond:"); Scanner scanner = new Scanner(System.in); line = scan...
阅读全文
摘要:题目:打印九九乘法表。编程实现:public class MulTables{ public static void main(String []args){ for(int i=1; i<=9; i++){ for(int j=1; j<=i; j++){ System.out.print(i+"*"+j+"="+i*j+" "); } System.out.println(); } }}
阅读全文
摘要:题目:求1+2!+3!+...+20!的和 。程序分析:n!=n*(n-1)!,利用递归实现阶乘,再相加。编程实现:public class FactorialSum{ public static void main(String []args){ int sum = 0; int i; for(i=1; i<=20; i++){ sum += factorial(i); } System.out.println("1`20阶乘相加结果:"+sum); } private static int factorial(int number){ i...
阅读全文
摘要:题目:将一个正整数分解质因数。例如:输入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的值,重复执行第一步。编程实现:import java.util.*;public class DecPrime{ public static void main(String []args){ int number
阅读全文
摘要:猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少。1.程序分析:采取逆向思维的方法,从后往前推断。编程实现:public class PeachProblem{ public static void main(String []args){ int day = 10; int count = 1; //第十天剩下的peach for(int i=1; i<day; i++){ co...
阅读全文
摘要:题目:输入三个整数x,y,z,请把这三个数由小到大输出。 分析:不借组新的变量编程实现:import java.util.*;public class Comparison{ public static void main(String args[]){ int x,y,z; Scanner scanner = new Scanner(System.in); System.out.println("Please input three number:"); System.out.print("第一个数为:"); x = scanner.nextInt()
阅读全文
摘要:题目:打印杨辉三角形。1.程序分析:1 11 1211331146411 5 10 10 5 1 特点:杨辉三角以正整数构成,数字左右对称,每行由1开始逐渐变大,然后变小,回到1。第n行的数字个数为n个。第n行数字和为2n−1。除每行最左侧与最右侧的数字以外,每个数字等于它的左上方与右上方两个数字之和。编程实现:import java.util.*;public class YangHui{ public static void main(String args []){ System.out.print("Plz input the rows of YangHui:");
阅读全文
摘要:题目:用1、2、3、4、5这五个数字,打印出所有不同的数字排列,如:51234、41235、31254等,要求:"4"不能在第三位,"3"与"5"不能相连,一个排列中数字不能重复。题目分析:该五个数字组合实际上是一个数,这个数中最大为54321,最小为12345,因此可以用循环遍历出来。编程实现:public class RankNumber{ private static String [] number = new String [] {"1","2","3","
阅读全文
摘要:题目:打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个"水仙花数",因为153=1的三次方+5的三次方+3的三次方。1.程序分析:利用for循环控制100-999个数,每个数分解出个位,十位,百位。编程实现:import java.util.*;public class DaffodilTest{ public static void main(String args[]){ int hundred = 0; int ten = 0; int bit = 0; for(int
阅读全文
摘要:题目:判断101-200之间有多少个素数,并输出所有素数。1.程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除, 则表明此数不是素数,反之是素数。 何谓素数?维基百科:质数,又称素数,指在一个大于1的自然数中,除了1和此整数自身外,无法被其他自然数整除的数(也可定义为只有1和本身两个因数的数)。比1大但不是素数的数称为合数。1和0既非素数也非合数。素数在数论中有着很重要的地位。最小的素数是2,也是素数中唯一的偶数(双数);其他素数都是奇数(单数)。质数有无限多个,所以不存在最大的质数。围绕著素数存在很多问题、猜想和定理。著名的有孪生素数猜想和哥德巴赫猜想。素数序列
阅读全文
摘要:兔子问题又叫斐波那契数列(Fabonacci),是最先研究这个数列的人是比萨的列奥那多(又名费波那契),他描述兔子生长的数目时用上了这数列。兔子问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?1.程序分析: 兔子的规律为数列1,1,2,3,5,8,13,21.... 2.由此可以归纳出:f(1)=1,f(2)=1;f(n)=f(n-1)+f(n-2);编程实现:public class RabitQuestion{ public static void main(String args[]){ ...
阅读全文

浙公网安备 33010602011771号