九度OJ 1179:阶乘 (循环)
- 题目描述:
-
输入n,
求y1=1!+3!+...m!(m是小于等于n的最大奇数)
y2=2!+4!+...p!(p是小于等于n的最大偶数)。
- 输入:
-
每组输入包括1个整数:n
- 输出:
-
可能有多组测试数据,对于每组数据,
输出题目要求的y1和y2
- 样例输入:
-
4
- 样例输出:
-
7 26
思路:
注意结果范围,用long long。
代码:
#include <stdio.h> long long f(int n) { long long result = 1; for (int i=1; i<=n; i++) result *= i; return result; } int main(void) { int n, i; long long y1, y2; while (scanf("%d", &n) != EOF) { y1 = y2 = 0; for(i=1; i<=n; i++) { if (i%2 == 1) y1 += f(i); else y2 += f(i); } printf("%lld %lld\n", y1, y2); } return 0; } /************************************************************** Problem: 1179 User: liangrx06 Language: C Result: Accepted Time:0 ms Memory:912 kb ****************************************************************/
编程算法爱好者。