蓝桥 阶乘差 JAVA

问题描述
  给定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,宝儿姐回归普通话了,不多说了,我的铁锹呢??地图呢??咦,碧莲??

发布了21 篇原创文章 · 获赞 11 · 访问量 756

猜你喜欢

转载自blog.csdn.net/weixin_43771695/article/details/104239765
今日推荐