zoukankan      html  css  js  c++  java
  • 一本通1166 求f(x,n)

    【题目描述】

    已知

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

    【输入】

    输入x和n。

    【输出】

    函数值,保留两位小数。

    【输入样例】

    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
    ",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.该递归的就要递归,

       递归的题和一般的函数+循环有区别(其实也不大),

       基本上有以下特征:

       (1):一个函数套自己,比如f(f(x)),

                   正常的循环题只有不同参数函数值之间的加法或乘法。

       (2):大部分的题,不用递归你做不出来...(或是不好做...)

       所以嘛,做题之前一定先想想要用什么算法或者结构什么的,

       不然代码打到一半不会打了太尴尬...
         

    
    
  • 相关阅读:
    HDU 1269 迷宫城堡 tarjan算法求强连通分量
    hrbust 1721 A + B = 0 map的应用
    关于vis标记
    poj 1703
    poj1961 kmp
    acm poj1260 dp
    矩阵链乘 hrbust 1600
    单源最短路径 hdu 2066
    最小生成树
    多维背包 hrbudt 1335 算法与追MM
  • 原文地址:https://www.cnblogs.com/Jiangxingchen/p/12244693.html
Copyright © 2011-2022 走看看