1.比较三个已知数的值,确定最大/最小项?
假定:int a = 5, b = 2, c = 8;
方法一:利用三目运算符
int x = (a > b ? a : b);
int y = (x > c ? x : c);
System.out.println("输出最大值是:" + y);
方法二: 引入一个新的变量做桥梁,将两两比较的最大结果复制给 max 变量.从而获得最大值
int max = a;
if (b > max){
max = b;
}
if (c > max){
max = c;
}
System.out.println("最大值是" + max);
对比总结: 上述代码块采用了两种方式得出结论, 第一种方法利用三目运算符,占用两个变量空间, 需要内存中给开辟两个空间的位置 . 第二种方法,引入一个新变量做桥梁,实则是开辟一个变量空间.
2. 三个变量排序? 按从大到小或从小到大的顺序排列
int a = 5, b = 3, c =8;
if(a>b){
int temp = a ;
a = b ;
b = temp;
}if(b>c){
int temp = b;
b = c;
c = temp;
}if(a>b){
int temp = a;
a = b;
b = a;
}
System.out.println("三个数的大小关系是:"+c+">"+b+">"+a);
总结: 本例适用的是“冒泡法”「冒泡法基通过对比相邻元素的值,确定大小,再将大/小的值进行二轮比较, n位数通过冒泡法需要比较,需要实现(n-1)次」
3.用循环来计算n的阶乘
Scanner sc = new Scanner(System.in);
int num = sc.nextInt();
System.out.println("输入数字得出阶乘");
int m = 1;
for (int i = 1; i <(num+1); i++) {
m = i * m;
}
System.out.println(num+"!="+m);
总结: 初学者可以先不用考虑前三行代码, 前三行代码中实现的是一个交互的作用, 用户先是输入一个数字, 再通过一下代码计算所输入数字的阶乘信息.
4.如果n>100,进行自减操作。n<100,自增。n=100停止
int n = 50;
while(n!=100){
if(n>100){n--;
}else if(n<100){
n++;
}
总结: 这个练习一下就好, 逻辑上不难, 试着写一下,了解自增、自减的原理.
5.找到某个数的所有因子 n=6,因子:1 2 3 6;
Scanner sc = new Scanner (System.in);
System.out.println("输入数字:");
int num = sc.nextInt();
System.out.println("输入的数字是:"+num);
for (int i = 1; i < (num+1); i++) {
if(num % i == 0){
System.out.println(i);
}
}
总结 : 前四行可以先不用看.
判断一个数是不是素数 (假设n=8)
int n = 8;
boolean flag = true ;
for (int i = 2; i < Math.sqrt(n); i++) {
if(n % i == 0){
flag = false;
break;
}
}if(flag){
System.out.println(n+"是素数");
}else{
System.out.println(n+"不是素数");
}
总结:要遍历之后才能确定状态的话,就要添加标志位.本例中的标志位是boolean中的true/false .