文章目录
  1. 1. 名词
  2. 2. java基础语法
  3. 3. 存疑
  4. 4. P25

1354996

名词

  1. 静态方法:即函数;
    方法封装了一系列语句 所描述的运算
  1. 实例方法:

java基础语法

  1. 获取数组长度
    1
    int N = a.length;

如果为多位数组,则N为行数;

  1. 起别名
    数组名表示的是整个数组,如果我们将一个数组变量赋予另一个变量,那么这2个变量将会指向同一个数组,例如:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
        public class takethat {
    public static void main(String[] args) {

    int[][] a = {{1, 2, 3, 4}, {5, 6, 7, 8}, {9, 10, 11, 12}};

    int M = a.length; //行
    int N = a[0].length; //列
    int[][] b = a;


    for (int i = 0; i < b.length; i++) {
    for (int j = 0; j < b[0].length; j++)
    System.out.print(b[i][j] + ", ");
    System.out.print("\n");
    }
    }
    }

存疑

  1. 二维数组下标
    C++里二维数组必须有下表才能赋值,一维数组则不需要下标则能使用
1
int a[][] = { {1,2,3},{4,5,6} };

VS2015 会报错

1
2
    error C2087: 'a': missing subscrip
error C2078: too many initializers

int a[]= {  1,2,3 ,4,5,6  };

输出数组实例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
    public class takethat {
public static void main(String[] args) {
double[] a = {1, 2, 3, 4, 5, 6};
int N = a.length;

double[] b = new double[N];
for (int i = 0; i < N; i++)
b[i] = a[i];

for(int i=0; i<b.length; i++)
System.out.print(b[i]+", ");

}
}

1
2
3
4
5
public static int gcd(int p, int q) {
if (q == 0) return p;
int r = p % q;
return gcd(q, r);
}

典型数组处理代码

  • 颠倒数组元素顺序
    C++实现代码

    1
    2
    3
    4
    5
    6
    7
    8
    //a为数组
    int N = sizeof(a) / sizeof(a[0]);
    for (int i = 0; i < N / 2; i++)
    {
    int temp = a[i];
    a[i] = a[N - 1 - i];
    a[N - 1 - i] = temp;
    }
  • 找出数组最大元素

1
2
3
4
5
6
7
8
//a为数组
int N = sizeof(a) / sizeof(a[0]);
int max=a[0];
for(int i=1;i<N;i++)
{
if(a[i]>max)
max=a[i];
}
  • 矩阵方程
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    #include<iostream>
    #define a_row 2 //a矩阵的行
    #define N 4 //a矩阵的列
    #define N 4 // b矩阵的行
    #define b_column 2

    int main()
    {

    int a[a_row][N] = { { 1, 2, 3,4 },{ 5, 6, 7,8 } };
    int b[N][b_column] = { { 1, 1 },{ 1, 1 },{ 1, 1 },{ 1, 1 } };

    int c[a_row][b_column]; //结果矩阵: c矩阵的 行:a矩阵的行, 列:b矩阵的列

    for (int i = 0; i <a_row; i++) // a 矩阵的行数
    for (int j = 0; j < b_column; j++) { // b矩阵的列数
    c[i][j] = 0; // 每次使用数组变量都要初始化一下,如果没有这个会输出错误的结果
    for (int k = 0; k < N; k++) //
    {
    c[i][j] = c[i][j] + a[i][k] * b[k][j];
    }
    }

    for (int i = 0; i < a_row; i++) {
    for (int j = 0; j < b_column ; j++) {
    std::cout << c[i][j]<<" ";
    }
    std::cout << std::endl;
    }
    }

【output】

1
2
10 10
26 26

典型静态方法实现

  1. 计算一个整数的绝对值
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    #include<iostream>
    int abs(int x);
    int abs(int x)
    {

    if (x<0)return -x;
    else return x;
    }

    int main()
    {

    int a;
    std::cin >>a;
    std::cout << abs(a)<<std::endl;
    }

计算一个浮点数的绝对值,也是类似的方法

  1. 判定一个数是否是素数
    ```C++
    #include
    bool isPrime(int);
    bool isPrime(int N)
    {
    if (N < 2) return false;
    for (int i = 2; i*i <= N; i++)
    if (N%i == 0) return false;
    return true;
    }

int main()
{
int n;
scanf(“%d”, &n);

if (isPrime(n))
    std::cout << "isPrimer";
else
    std::cout << "not Primer";

}
```

  1. 计算平方根(牛顿迭代法)
    可参考

……..

P25

文章目录
  1. 1. 名词
  2. 2. java基础语法
  3. 3. 存疑
  4. 4. P25