java课堂作业(三)
1、分支
if(){};if(){}else{};if(){}else if(){}...else{};
switch(byte;short;int;long) { case 1:。。。。。;break; case 2: 。。。。。; break ; ...... default:。。。。。;}
while(){};do{}while();for(){};
2、非递归
1 Scanner read = new Scanner(System.in); 2 int a = read.nextInt(); 3 int result = 1; 4 if(a<0){ 5 System.out.println("输入不合法"); 6 }else if(a==0){ 7 System.out.println("阶乘为1"); 8 }else{ 9 for(int i=1;i<=a;a--){ 10 result *= a; 11 } 12 System.out.println("阶乘为"+result); 13 }
递归
1 public int factorial(int i) { 2 if(i<0){ 3 System.out.println("输入不合法!"); 4 return -1; 5 }else if(i==0){ 6 return 1; 7 }else{ 8 return i*factorial(i-1); 9 } 10 }
假如 i = 5
5 * factorial (4)
5 * 4 * factorial (3)
5 * 4 * 3 * factorial (2)
5 * 4 * 3 * 2 * factorial (1)
5 * 4 * 3 * 2 * 1 * factorial (0) = 1
3、99乘法表
经过分析:我们得知 可以 用 a 与 b 表示 两个 乘数 a=b的时候换行
a = 1 时 b 从 1 - 1
a = 2 时 b 从 1 - 2
a = 3 时 b 从 1 - 3
。。。
a = 9 时 b 从 1 - 9
我们看到 b 总是 从1 变化到 a
分属两个 for 循环
1 for (int a = 1; a<=9;a++) { 2 for (int b=1; b<=a;b++){ 3 System.out.print(a+"*"+b+"="+a*b+" "); 4 } 5 System.out.println(); 6 }
4、思路分析
首先是三位数,利用除法得到各位的 数字
123 / 100 = 1
123 % 100 /10 = 2
123 % 10 = 3
a b c
循环范围是 100 -- 999
1 for(int i=100;i<=999;i++){ 2 int a = i / 100; 3 int b = i % 100 / 10; 4 int c = i % 10; 5 if (a*a*a+b*b*b+c*c*c == i ){ 6 System.out.println(i); 7 } 8 }
完成了
5、首先分析出通项公式
4/(2n-1) * (-1)^(n-1) n 从 1 到 无穷
圆周率用 double pi 表示 所以
pi += 4/(2n-1) * m (m=-m)
我们再定义一个计数变量 int count = 0;
1 int n = 1; 2 int m = 1; 3 int count = 0; 4 double pi = 0.0; 5 while (true){ 6 if(pi>3.1415926&&pi<3.1415927){ 7 break; 8 } 9 pi = pi + 4.0/(2n-1) * m ; 10 m=-m; 11 count++; 12 } 13 System.out.println(count);(明天再看,不会,不懂)
6、打印
*
***
*****
***
*
代码
1 for(int i=0;i<=2;i++){ 2 for(int j=1;j<=2-i;j++){ 3 System.out.print(" "); 4 } 5 for(int k=1;k<=2*i+1;k++){ 6 System.out.print("*"); 7 } 8 System.out.println(); 9 } 10 for(int i=0;i<=1;i++){ 11 for(int j=2;j>=2-i;j--){ 12 System.out.print(" "); 13 } 14 for(int k=3;k>=2*i+1;k--){ 15 System.out.print("*"); 16 } 17 System.out.println(); 18 }
感想:40分钟
10分钟思考 30 分钟 编码 调试(不好,抓耳挠腮)
30分钟思考 10分钟 编码 调试(好,行云流水)