九度oj 题目1179:阶乘

题目描述:

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

输入:

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

输出:

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

样例输入:
4
样例输出:
7 26
 1 #include <cstdio>
 2 #include <cstdlib>
 3 #include <cstring>
 4 #include <string>
 5 #include <algorithm>
 6 
 7 int main(int argc, char const *argv[])
 8 {
 9     int n;
10     while(scanf("%d",&n) != EOF) {
11         long long int y1 = 0;
12         long long int y2 = 0;
13         long long int j = 0;
14         long long int temp = 1;
15         while(true) {
16             j++;
17             if(j > n) {
18                 break;
19             }
20             temp = temp * j;
21             y1 = y1 + temp;
22             
23             j++;
24             if(j > n) {
25                 break;
26             }
27             temp = temp * j;
28             y2 = y2 + temp;
29         }
30         printf("%lld %lld\n",y1, y2);
31     }
32     return 0;
33 }

这段代码只是在n <= 20之内有效

posted @ 2016-07-26 12:25  Jason杰  阅读(270)  评论(0编辑  收藏  举报