最近練習用JAVA寫了一些數學式,像是費氏級數
有關費氏級數大家可以去科普一下
在數學上,斐波那契數是以遞迴的方法來定義:
用文字來說,就是費氏數列由0和1開始,之後的斐波那契數就是由之前的兩數相加而得出。首幾個斐波那契數是:
1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377 ,610, 987……
程式碼大概是這樣
public class Fibonacci {
public static void main(String[] args) throws IOException {
int num;
String str;
BufferedReader buf;
buf=new BufferedReader(new InputStreamReader(System.in));
System.out.println("使用遞迴計算費氏級數\n");
System.out.println("請輸入一個整數:");
str=buf.readLine();
num = Integer.parseInt(str);
if (num<0)
System.out.print("輸入數字必須大於0\n");
else
System.out.print("Fibonacci("+num+")="+Fibonacci(num)+"\n");
}
public static int Fibonacci(int n)
{
if(n==0)//第0項為0
return (0);
else if(n==1)//第1項為1
return (1);
else
return(Fibonacci(n-1)+Fibonacci(n-2));
}
}
有關費氏級數的程式比較沒問題
現在想利用JAVA寫出多項式表達(在大陸稱為韋達定理)
有興趣這數學式的可以參考李永樂老師,我覺得他講的數學問題都很棒
https://www.youtube.com/watch?v=qVANpN_wNy4
目前有幾項多項式的JAVA題目,想和大家討論看看做法
/** Constructor from an array of coefficients c[] where c[i] is the coefficient of the x^i term */
public Polynomial(int[] coef) { }
/** returns the power of the highest-order non-zero term. */
public int degree() { }
/** returns a string representation of the polynomial (use
"x" as the dummy variable and format from the low-order to high-order powers */
/** Your string should be in the following form:
* x+2x^2-4x^5+x^6
*
* NOTE: if your string does not follow the above format, the provided
* parser functions will not work for you!
*/
public String toString() { }
/** operations on Polynomials returns this + b */
/**
* Mathematical expressions of the answer should be
* (a0+b0) + (a1+b1)*x + (a2+b2)*x^2 + (a3+b3)*x^3 + ... + (an+bn)*x^n
*/
public Polynomial add(Polynomial b) { }
/** returns this - b */
/**
* Mathematical expressions of the answer should be
* (a0-b0) + (a1-b1)*x + (a2-b2)*x^2 + (a3-b3)*x^3 + ... + (an-bn)*x^n
*/
public Polynomial sub(Polynomial b) { }
/** returns this * b*/
/**
* Mathematical expressions of the answer should be
* (a0*b0) + (a0*b1+a1*b0)*x + (a0*b2+a1*b1+a2*b0)*x^2 +
* (a0*b3+a1*b2+a2*b1+a3*b0)*x^3 + ... + (an*bn)*x^2n
*/
public Polynomial mul(Polynomial b) { }
/** returns this * c */
/**
* Mathematical expressions of the answer should be
* (c*a0) + (c*a1)*x + (c*a2)*x^2 + (c*a3)*x^3 + ... + (c*an)*x^n
*/
public Polynomial scale(int c) { }
我的答案下篇或是回覆寫給大家看,當然可能不一定對的,歡迎大家挑戰看看