hdoj-1012-c++

xiaoxiao2021-02-28  16

思路:两次递归,一次算阶乘,一次算求和,主要注意输出格式吧

结果:一开始循环时,阶乘忘记循环开始重设temp的值等于1了,最后改过来,AC。

附代码:

#include <iostream>

#include <math.h>

#include <iomanip>

using namespace std;

double cale(int n);

int main(){

    int n;

    double result[10];

    memset(result,0,10);

    for(n=0;n<=9;n++)

        result[n] = cale(n);

    cout<<"n"<<" "<<"e"<<endl;

    cout<<"- -----------"<<endl;

    for(int i=0;i<10;i++){

        if(i>=3){

            cout<<i<<" "<<fixed<<setprecision(9)<<result[i]<<endl;

        }

        else{

            cout<<i<<" "<<result[i]<<endl;

        }

    }

    return 0;

}

double cale(int n){

    double result=0;

    double temp=1;

    if(n==0)

        result = 1;

    else{

        for(int i=0;i<=n;i++){

            temp = 1;

            for(int j=1;j<=i;j++){

                temp *= j;

            }

            result += 1.0/temp;

        }

    }

    return result;

}

转载请注明原文地址: https://www.6miu.com/read-2650012.html

最新回复(0)