一本通1166 求f(x,n)

【題目描述】

已知ios

計算x=4.2n=1以及x=2.5n=15f的值。算法

【輸入】

輸入x和n。函數

【輸出】

函數值,保留兩位小數。atom

【輸入樣例】

4.2 10

【輸出樣例】

3.68
 
 
1.看見這種一個套着一個還帶着詭異符號的,
基本上都是函數+循環(遞歸嘛)的套路。
話說這題一開始我沒看明白,
從n怎麼變到x+1的???
再看看,
好像是由n變到1,而後最後那個根號裏面有個x;
讓咱們遞歸一下,寫寫代碼。
2.這就是正解了
#include<iostream>
#include<cstdio>
#include<cmath>
using namespace std;
double gen(double x,double n);//聲明一個double型的函數,最後保留兩位輸出。 
int main()
{
    double n,x;
    double result;
    cin>>x>>n;
    result=gen(x,n);
    printf("%.2lf\n",result);
    return 0;
}
double gen(double x,double n)//定義一下這個「根」函數 
{
    if(n==1)
    return sqrt(1+x);
    else
    return sqrt(n+gen(x,n-1));//這時候就是遞歸最靈魂的操做,調用本身
}
 
 

3.該遞歸的就要遞歸,spa

   遞歸的題和通常的函數+循環有區別(其實也不大),xml

   基本上有如下特徵:blog

   (1):一個函數套本身,好比f(f(x)),遞歸

               正常的循環題只有不一樣參數函數值之間的加法或乘法。ci

   (2):大部分的題,不用遞歸你作不出來...(或是很差作...)io

   因此嘛,作題以前必定先想一想要用什麼算法或者結構什麼的,

   否則代碼打到一半不會打了太尷尬...     

相關文章
相關標籤/搜索