第10题答案:
package chap4;
import java.util.Scanner;
/*
* 给一个自然数,偶数除以2,奇数则乘以3加1,得到一个新的自然数继续上面步骤计算
* */
public class Work10 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入一个数");
int sum= scanner.nextInt();
while(sum!=1){
if (sum % 2 == 0) {
System.out.print(sum);
sum/=2;
System.out.println("/"+2+"="+sum);
}else if (sum%2 !=0){
System.out.print(sum);
sum=sum*3+1;
System.out.println("*"+3+"+"+1+"="+sum);
}
}
}
}
第11题答案:
package chap4;
import java.util.Scanner;
/*
* 已知两个完全平方三位数abc和xyz,其中a,b,c,x,y,z未必是不同的,
* 而ax,by,cz是三个完全平方数,求abc和xyz
* */
public class Work11 {
public static void main(String[] args) {
for(int i=100;i<=999;i++){
for(int j=100;j<=999;j++) {
if(isSquare(i) && isSquare(j)){
int a= i/100;
int b= i%100/10;
int c= i%10;
int x=j/100;
int y=j%100/10;
int z=j%10;
if( isSquare(a*10+x) && isSquare(b*10+y) && isSquare(c*10+z)){
System.out.println(i+"--"+j);
}
}
}
}
System.out.println(isSquare(145));
}
public static boolean isSquare(int i){
double x=Math.sqrt(i);
if(x%1==0){ //double xiao= x%100-Math.round(x%10);//156%100 56- 156%10 6//(x%1<1 &&x%1>0)
//System.out.println(i+"是完全平方数");
return true;
}
return false;
}
}
一、下课期间可以看看下边代码:
1.请测试下边代码是否报错;
public static void main(String[] args){ int i=5; for(int i=1;i<=100;i++){ System.out.println(i); } System.out.println(i); }
2.请测试下边代码是否报错 public static void main(String[] args){
for(int i=1;i<=100;i++){ System.out.println(i); } System.out.println(i);
}
3.请测试下边代码是否报错
public static void main(String[] args){ boolean isMan=false; if(isMan==true){//下括号中可以只写isMan int i=5; System.out.println("you are a boy"); } System.out.println(i); }
二、数组
数组的默认值:
int[] a=new int[2];//0 double[] d=new double[2];//0.0 float f=new float[2];//0.0f
new boolean[2];//false
String[] s=new String[3];//字符串 null //给字符串数组第0个位置放入字符串数据 s[0]="heello"; //取出字符串数组第0个元素元素进行操作(进行拼接) String rs=s[0] + "zs";
三、下课期间可以自己尝试定义其他类型的数组:
注意获取数组长度可以用数组的length属性: 数组名.length 打印数组长度代码;System.out.println(数组名.length); 1.定义长度为5的String数组并打印最后一个元素 2.定义长度为5的int数组并打印最后一个元素 //数组名[数组名.length-1] 3.定义长度为5的byte数组并打印第0个元素 4.定义长度为5的long数组并打印最后一个元素 5.定义长度为5的float数组并打印最后一个元素
注意:数组定义还可以写成如下格式(定义包含数值的数组as): int[] as={1,2,3};
6.定义一个包含"hello","你好","赛瓦迪卡" 三个元素的数组并打印最后一个元素
四、下课期间可以练习一下数组操作:
1.定义一个长度为5的char数组,里边放入 'a' 'f' 'd' 'h' 'x' 然后取出每个元素后 加 1, 以字符形式打印加一之后的结果
2.用for循环尝试将包含有a={ 1,2,3} 三个元素的数组a 放入 b=[ 9,8,7, , , ]的最后三个空间处
-
定义一个byte数组,里边存入 5,9,10,30 求出数组的最小值并打印
五、如何结束/跳过循环: break/continue
//注意:如果循环体中只有一行代码,可以不写大括号 for(int i=1;i<5;i++) System.out.println(i);// 1 2 3 4
System.out.println("AA");//"AA"
for(int i=1;i5<5;i5++){ if(i4==3){ continue;//跳过本次continue之后循环体的代码 } System.out.print(i);//1xx 2xx 3xx不会打印(跳过了) 4xx System.out.print("xx"); }//continue:走路中途碰见障碍, 跳过它,还要继续走
for(int i=1;i<5;i++){ if(i==3){ break;//满足条件就结束这个for循环(后边都不执行了) } System.out.print(i);//执行结果:1xx 2xx 3xx不打印(从这里终止循环的执行了) 4xx不打印 System.out.print("xx"); } //continue:走路中途碰见一堵墙了只能终止(假设只能前进不能后退也不能掉头)(原本要走到4,结果到3就终止了)
练习: 从1---1000以内跳过10的倍数(把其他数字打印出来):提示用continue可以实现。