首页 > 代码库 > 华科机考:阶乘

华科机考:阶乘

时间限制:1秒 空间限制:32768K

题目描述

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

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

 

输出描述: 可能有多组测试数据,对于每组数据, 输出题目要求的y1和y2

输入例子: 4

 

输出例子: 7 26

吐槽:年代很久远的题,照着做就行了(最好打个表,这样效率高)

代码:

#include <iostream>

using namespace std;

long long a[110];

void jiecheng(){
   a[1]=1;
  for(int i=2;i<=100;i++)
   a[i]=i*a[i-1];
}

int main(){
   int n;
   long long ans1,ans2;
   int tmp1,tmp2;
   jiecheng();
    while(cin>>n){
     ans1=ans2=0;
     if(n%2==0){
        tmp1=n-1;
        tmp2=n;
     }
     else{
        tmp1=n;
        tmp2=n-1;
     }
     for(int i=1;i<=tmp1;i=i+2)
        ans1=ans1+a[i];
     for(int i=2;i<=tmp2;i=i+2)
        ans2=ans2+a[i];
     cout<<ans1<<" "<<ans2<<endl;
    }
   return 0;
}

 

华科机考:阶乘