学习笔记2
+=,-=,*=,/=隐含了强制类型转换。
逻辑运算中,&和&&的区别为:
&:无论左边为真假,右边都参与运算
&&:如果左边为假,则右边不参与运算,如果左边为真,右边参与运算。
异或操作可以实现两个整数的交换(不需要额外空间开销):
a, b;
a = a ^ b;
b = a ^ b;
a = a ^ b;
实现两个整数交换的4种常用方法:
1) 引入第3个变量temp
2) 使用异或操作符^
3) 利用加减法运算
a = a + b;
b = a – b;
a = a – b;
4) 一条搞定
b = (a + b) – (a = b);
用二维数组保存并输出杨辉三角形(不同的行的数据个数不同):
/**
*
*/
package com.yan.javaTest;
import java.util.Scanner;
/**
* @author Yan
*
*/
public class YangHuiSanJiao {
/**
* Yang hui san jiao xing.
*
* 1
* 1 1
* 1 2 1
* 1 3 3 1
* 1 4 6 4 1
* 1 5 10 10 5 1
*
* 1. Mei hang de di yi lie he zui hou yi lie dou shi 1;
* 2. Cong di san hang kai shi zhongjianlie de shuzhi wei shangyihang de qianyilie he dangqianlie
* shuzhi zhihe.
*
*/
public YangHuiSanJiao() {
// TODO Auto-generated constructor stub
}
/**
* @param args
*/
// 数组赋值
int[][] yangHuiSanJiaoXing(int[][] str){
for(int i=2;i<str.length;i++){ //from the third line str[2][];
for(int j=1;j<str[i].length-1;j++){ //from str[i][1] ---- str[i][length-2];
str[i][j]=str[i-1][j-1]+str[i-1][j];
}
}
return str;
}
// 数组格式初始化
int[][] arrInit(int[][] str,int n){
for(int i=0;i<n;i++){
str[i]=new int[i+1];
str[i][0]=1;
str[i][i]=1;
}
return str;
}
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println("Please input a number to assign the lines of the triangle:");
Scanner sc = new Scanner(System.in);
int n=sc.nextInt();
int[][] arr=new int[n][];
YangHuiSanJiao ys = new YangHuiSanJiao();
arr=ys.arrInit(arr, n);
arr=ys.yangHuiSanJiaoXing(arr);
for(int i=0;i<arr.length;i++){
for(int j=0;j<arr[i].length;j++){
System.out.print(arr[i][j]+"\t");
}
System.out.println();
}
sc.close();
}
}
posted on 2016-02-09 19:27 Yanspecial 阅读(234) 评论(0) 编辑 收藏 举报