算法学习-1

来源:互联网 发布:电脑备忘录的软件 编辑:程序博客网 时间:2024/06/05 15:48

题目要求: 求1/1!-1/3!+1/5!-1/7!+..+(-1)^(n+1)/(2n-1)!

数学模型: Sn = Sn-1+(-1)^(n+1)/(2n-1)!

算法设计: 

C

int main(int argc, const char * argv[])

{

    double sum = 1, factorial = 1;

    int num = 0, sign = 1;

    printf("Please input a number: ");

    scanf("%d", &num);

    for (int count = 2; count <= num; ++count)

    {

// 正负号

        sign = -sign;

// 阶乘

        factorial = factorial * (2 * count - 2) * (2 * count - 1);

// 求和

        sum = sum + sign/factorial;

    }

    printf("Sum = %lf\n", sum);

    return 0;




C++

int main(int argc, const char * argv[])

{

    double sum = 1, factorial = 1;

    int num = 0, sign = 1;

    std::cout << "Please input a number: ";

    std::cin >> num;

    for (int count = 2; count <= num; ++count)

    {

        sign = -sign;

        factorial = factorial * (2 * count - 2) * (2 * count - 1);

        sum += sign/factorial;

    }

    std::cout << "Sum: " << sum << std::endl;

    return 0;

}


Python

def Main():

    Sum = 1.0

    Factorial = 1.0

    Sign = 1

    Num = int(input('Please input a number: '))

    for Count in range(2, Num + 1):

# 正负号

        Sign = -Sign

# 阶乘

        Factorial = Factorial * (2 * Count - 2) * (2 * Count - 1)

        Sum += Sign/Factorial

    print('Sum: ', Sum)


0 0
原创粉丝点击