試題 演算法提高 遞回 C語言

2020-08-11 21:02:43

試題 演算法提高 遞回

資源限制
時間限制:1.0s 記憶體限制:256.0MB
問題描述
  當x>1時,Hermite多項式的定義見第二版教材125頁。使用者輸入x和n,試編寫「遞回」函數,輸出對應的Hermite多項式的值。其中x爲float型,n爲int型。
輸入格式
  x n
輸出格式
  對應多項式的值
樣例輸入
一個滿足題目要求的輸入範例。
例:
1.8 7
樣例輸出
與上面的樣例輸入對應的輸出。
例:
-987.857
數據規模和約定
  x>1
  n爲自然數

#include<stdio.h>
float fac(float x, float n) {
    if (n == 0) return 1;
    if (n == 1) return 2 * x;
    return (2.0 * x * fac(x, n - 1) - 2.0 * (n - 1) * fac(x, n - 2));
}
int main(){
	float x,n;
	scanf("%f%f",&x,&n);
	if(n>5){
		printf("%.3f",fac(x,n));
	}else printf("%.2f",fac(x,n));
	return 0;
}