zoukankan      html  css  js  c++  java
  • 计算机考研复试真题 阶乘

    题目描述

    输入n, 求y1=1!+3!+...m!(m是小于等于n的最大奇数) y2=2!+4!+...p!(p是小于等于n的最大偶数)。

    输入描述:

    每组输入包括1个整数:n

    输出描述:

    可能有多组测试数据,对于每组数据,
    输出题目要求的y1和y2
    示例1

    输入

    4
    

    输出

    7 26




    /*
    解题思路:1.写一个求某一数字m的阶乘函数。
    2.对于输入的n进行最大奇数和偶数的确定,确定方法:若n%2==0,则最大偶数为n,最大奇数为n-1;
    若n%2!=0,则最大奇数为n,最大偶数为n-1;
    3.然后根据题意+2阶乘累加。
    */
    #include<iostream>
    using namespace std;
    
    int factorial(int m) {  //
        if (m == 1)
            return 1;
        return m * factorial(m - 1);
    }
    int main() {
        int n;  //输入的整数
        int maxEven, maxOdd;  //存放最大偶数和奇数
        int sum1 = 0, sum2 = 0;  //存放阶乘和
        while (cin >> n) {
            if (n % 2 == 0) {
                maxEven = n;
                maxOdd = n - 1;
                for (int i = 2; i <= maxEven; i = i + 2) {
                    sum1 += factorial(i);
                }
                for (int i = 1; i <= maxOdd; i = i + 2) {
                    sum2 += factorial(i);
                }
                cout << sum2 << " " << sum1 << endl;
            }
            else {
                maxEven = n - 1;
                maxOdd = n;
                for (int i = 2; i <= maxEven; i = i + 2) {
                    sum1 += factorial(i);
                }
                for (int i = 1; i <= maxOdd;i = i + 2) {
                    sum2 += factorial(i);
                }
                cout << sum2 << " " << sum1 << endl;
            }
        }
        return 0;
    }
  • 相关阅读:
    下载文件
    Cookie方法
    阿拉伯数字转大写
    格式化日期
    正向代理与反向代理
    get post 区别
    gulp
    什么是javascript中的同步&&异步?
    懒加载
    js操作dom时发生了什么?
  • 原文地址:https://www.cnblogs.com/parzulpan/p/9923086.html
Copyright © 2011-2022 走看看