问题描述
给定n和m以及p,保证n>=m,求(n!-m!)对p取余的结果。
输入格式
一行三个正整数n,m,p。
输出格式
一行一个非负整数表示结果。
样例输入
3 2 10
样例输出
4
数据规模和约定
n,m<=20,p<=10000.
思路:该花里胡哨,咱就摇摆啊,该动手使用暴力呢,咱就不留情了。
import java.util.Scanner;
public class Text4 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int m = sc.nextInt();
int p = sc.nextInt();
long count1 = 1, count2 = 1; //数据规模约定p<=10000,所用长整型long
if (n >= m) { //不会出现负数
for (int i = 1; i <= n; i++) {
count1 = count1 * i; //n的阶乘
}
for (int j = 1; j <= m; j++) {
count2 = count2 * j; //m的阶乘
}
long s = (count1 - count2) % p; //求(n!-m!)对p取余的结果
System.out.println(s); //输出结果即可
}else {
System.out.println("输入有误");
}
}
}
小剧场:一人之下3,宝儿姐回归普通话了,不多说了,我的铁锹呢??地图呢??咦,碧莲??