PolyAdd

Retired DISLab
Swpark (토론 | 기여) 사용자의 2014년 1월 26일 (일) 09:49 버전
(비교) ← 이전 판 | 현재 판 (비교) | 다음 판 → (비교)
이동: 둘러보기, 찾기
import acm.program.ConsoleProgram;
 
 
class Polynomial
{
    public Polynomial(int degree, float[] coef) {
        this.degree = degree;
        this.coef = coef;
    }
 
    public Polynomial() {
        degree = 0;
    }
 
    Polynomial add(Polynomial poly) {
        float[] coefArr = new float[this.coef.length + poly.coef.length];
        Polynomial c = new Polynomial();
        int Apos = 0, Bpos = 0, Cpos = 0;
        int degree_a = this.degree;
        int degree_b = poly.degree;
 
        while( Apos <= this.degree && Bpos <= poly.degree) {
            if (degree_a > degree_b) {
                coefArr[Cpos++] = this.coef[Apos++];
                degree_a--;
            }
            else if (degree_a == degree_b) {
                coefArr[Cpos++] = this.coef[Apos++] + poly.coef[Bpos++];
                degree_a--;
                degree_b--;
             }
            else {
                coefArr[Cpos++] = poly.coef[Bpos++];
                degree_b--;
            }
            c.degree++;
        }
        c.coef = coefArr;
        return c;
    }
 
    private int degree;
    private float[] coef;
}
 
public class PolyAdd extends ConsoleProgram {
    public void run() {
        float arr1[] = {3, 6, 0, 0, 0, 10};
        float arr2[] = {7, 0, 5, 0, 1};
        Polynomial a = new Polynomial(5, arr1);
        Polynomial b = new Polynomial(4, arr2);
 
        Polynomial c;
        c = a.add(b);
        println(c);
    }
 
    private static final long serialVersionUID = 1;
}
개인 도구
이름공간
변수
행위
둘러보기
구성원
연구
연구실
기타
도구모음
인쇄/내보내기