상 삼각 행렬 은 1 차원 배열 로 저장 된다.
2352 단어 데이터 구조
사실 제목 이 잘 기억 이 안 나 는데...이 문 제 를 처음 풀 었 을 때 저 는 n * n 매트릭스 로 데 이 터 를 저장 한 다음 에 압축 방법 과 압축 해제 방법 을 정 의 했 습 니 다. 숙제 를 마치 고 선생님 께 서 이 문제 의 원래 뜻 은 그렇지 않다 고 말씀 하 셨 습 니 다.당신 은 1 차원 배열 로 데 이 터 를 저장 해 야 공간 을 절약 하 는 목적 을 달성 할 수 있 습 니 다. 그리고 출력 할 때 표시 식 n * n 의 행렬...그리고 다시 고 쳤 습 니 다. 다음은 제 답 입 니 다. 오류 가 있 으 면 위 챗 macfor you 1 을 추가 하 겠 습 니 다.
Matrix.java
public class Matrix {
int r;
int c;
int[] values;//
public Matrix() {
r = 1;
c = 1;
values = new int[1];
values[0] = 1;// 1*1 , 0
}
public Matrix(int r, int c, int[] values) {
super();
this.r = r;
this.c = c;
this.values = values;
}
//
public static void recover(Matrix b) throws Exception{
int length = b.values.length;
int n = (int) Math.sqrt(2 * length);
int[][] a = new int[n][n];
for (int i = 0, k = 0; i
public Matrix add( Matrix y) {
int n = y.values.length;
int[] z = new int[n];
if (this.values.length != y.values.length)
{System.out.println(" ");
} else
{for (int i = 0; i < n; i++)
{z[i] = this.values[i] + y.values[i];}}
Matrix m=new Matrix(1, this.values.length, z); return m;}
//
public static void show1(Matrix m)
{
for(int i = 0; i < m.values.length; i++)
{
System.out.print("\t"+m.values[i]);}System.out.println();}
// n*n ,
public static void show2(int[][] array)
{for (int i = 0; i < array.length;i++)
{for (int j = 0; j < array[i].length; j++)
{
System.out.print("\t"+array[i][j]);}
System.out.println();}
}
}
然后定义一个MatrixTest类来测试import java.util.zip.ZipEntry; import org.omg.CosNaming.NamingContextExtPackage.AddressHelper; public class Matrixtest { public static void main(String[] args) throws Exception { Matrix m=new Matrix(); m.show1(m); int[] values1={1,2,3,4,5,6}; Matrix m1=new Matrix(1, values1.length, values1); // m1.show1(m1); int[] values2={2,3,4,5,6,7}; Matrix m2=new Matrix(1, values2.length, values2); m2.show1(m2); m2.recover(m2); Matrix m3=m1.add(m2); m3.show1(m3); } }
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
정수 반전Udemy 에서 공부 한 것을 중얼거린다 Chapter3【Integer Reversal】 (예) 문자열로 숫자를 반전 (toString, split, reverse, join) 인수의 수치 (n)가 0보다 위 또는 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.