,Click to edit Master text styles,Second level,Third level,Fourth level,Fifth level,Click to edit Master title style,2-,#,Click to edit Master text styles,Second level,Third level,Fourth level,Fifth level,Click to edit Master title style,2-,#,BOOKWISE,问题与练习(流程控制语句),Questions and Exercises,问题与练习(流程控制语句)Questions and Exe,练习题,练习,1,:创建一个阶乘应用程序,一个数,X,的阶乘(通常记作,X!,)等于,X*(X-1)*(X-2)*1,。例如,4!,等于,4321=24,。,创建一个称作,Factor,的应用程序,利用该应用程序可打印,2,,,4,,,6,和,10,的阶乘。,要求分别使用循环语句和递归算法实现,练习题 练习1:创建一个阶乘应用程序,练习题,练习,2,:,编写这样一个应用程序:从,1,循环到,50,并在每行打印一个值,另外还要求在每,3,的倍数上打印“,foo”,,再每个,5,的倍数行上打印“,biz”,,以及在每个,7,的倍数上打印“,baz”,。,比如:,1,2,3 foo,4,5 biz,6 foo,7 baz,8,9 foo,10 biz,13,15 foo biz,练习题 练习2:,练习题,练习,3,:,编写一个方法来查找在另一个字符串里的特定字符串。如果字符串存在,则方法必须返回真。,比如:,isSubString(“bat”,”The cat in the hat.”);,是,false,;,isSubString(“cat”,”The cat in the hat.”);,是,true,;,不使用,String,的,indexOf,方法,;,可以使用,charAt,和,subString,方法,public static boolean isSubString(String,String);,练习题 练习3:,思考题,思考题:,一個關於兔子繁殖的問題:,如果一對兔子每月能生一對小兔(一雄一雌),而每對小兔在牠出生後的第三個月裡,又能開始生一對小兔,,以后每个月生一对兔子;,假定在不發生死亡的情況下,由一對出生的小兔開始,,50,個月後會有多少對兔子?,。,要求写一个,java,程序来求解。,思考题 思考题:,问题与练习(数组),Questions and Exercises,问题与练习(数组)Questions and Exercis,动手与思考题,写一个方法用于打印整数数组,:,方法声明,public static void printArray(int array),结果如,:,for(int i=0;iarray.length;i+),if(i=array.length-1),动手与思考题 写一个方法用于打印整数数组:,动手与思考题,使用简单数组,创建一个称作,TestArray,的类,在,.main(),方法中声明两个变量,一个是,array1,,另一个是,array2,,它们应属类型,int,。,使用大括号,,把,array1,初始化为,1,到,10,的整数。,显示,array1,的内容。可能需要使用,printArray,方法显示这些整数数组;,将,array1,赋值给,array2,修改,array2,中的偶数索引元素,使其等于索引值,+10,(如,,array20=10;,和,array22=12;,),打印,array1,。看发生了什么?,int array,1,=34,34,234,5566,43;,printArray(array);,array2=array1;,public static void printArray(int array),动手与思考题 使用简单数组,动手与思考题,使用多维数组,以类型,int,声明一个叫,matrix,的变量(一个,int,数组的数组)。将矩阵初始化为一个五行的数组。,初始化每一个内部数组,使其长度分别为其外部数组的索引,(matrixi=new inti;),。,循环对每一个内部数组赋值,使其值等于当前外部数组和内部数组的索引的乘积(,matrixij=i*j;,),通过外部数组循环打印,matrix,并在单独一行打印每个内部数组。可以看到类似下面的输出结果:,matrix0 is,matrix1 is,matrix2 is,matrix3 is,matrix4 is,动手与思考题 使用多维数组,动手与思考题,数组排序,以类型,int,声明一个叫,array,的变量(一个,int,数组)。,初始化数组,给每一个元素赋值一个,100,以内的随机整数,并打印该数组。,对该数组排序,并打印该数组。可以看到类似下面的输出结果:,排序前:,排序后:,动手与思考题 数组排序,动手与思考题,动态数组,(,讨论题,),写一个动态数组:,实现添加数的功能:,void add(int i);,实现删除数的功能:,int remove(int index);,实现读取数的功能:,int get(int index);,实现查询数组长度的功能:,int length();,实现排序的功能:,void sort();,动手与思考题 动态数组(讨论题),大十进制数运算,要求实现一个用于大十进制数运算的工具类,可以进行加、减、乘、除等运算。如:,String n1=1234567.89;,String n2=98.7654321;,BigNumber bn1=new BigNumber(n1);,BigNumber bn2=new BigNumber(n2);,bn1.add(bn2);,bn2.toString();/1234666.6554321;,不要使用Java已有工具类(BigDecimal),但可以参考。,大十进制数运算要求实现一个用于大十进制数运算的工具类,可以进,动手与思考题,九宫棋,(,讨论题,),动手与思考题 九宫棋(讨论题),动手与思考题,你怎样创建一个三维数组?,使用数组的缺点是什么?,动手与思考题 你怎样创建一个三维数组?,