给出两个数 n, m。求 和 。
计算公式:
输入数据有多组(数据组数不超过 250),到 EOF 结束。
对于每组数据,输入两个用空格隔开的整数 n, m (0 <= m <= n <= 20) 。
对于每组数据输出一行,先输出 "Case #t: " 表示当前是第几组,t 从 1 开始计数,之后输出 和 。
#include <bits/stdc++.h>
using namespace std; long long n[25]; void mems() { n[0] = 1; for(int i = 1; i <= 20; i++) n[i] = n[i-1] * i; } int main() { mems(); int N, M; while(~scanf("%d%d", &N, &M)) printf("%lld %lld\n", n[N]/n[N-M], n[N]/(n[N-M]*n[M])); return 0; } //1.先把数全部算出来存好,往后直接调用 /*#include <stdio.h> long long get(int a) { long long sum = 1; for(int i=1; i<=a; i++) { sum *= i; } return sum; } int main() { int n, m; while(scanf("%d %d",&n,&m) != EOF) { long long b = get(n)/get(n-m); printf("%lld %lld\n",b,b/get(m)); } } //1.写成函数的形式,很清晰 */