递归算法(二)

发布时间:2026/11/6 3:40:54
递归算法(二) 一、【模板】快速幂Ⅰ ‖ 模小整数import java.util.Scanner; public class Main { public static long powMod(long a, long b, long p) { long res 1; a a % p; while (b 0) { if (b % 2 1) { res res * a % p; } a a * a % p; b b / 2; } return res % p; // 关键最后再取一次模 } public static void main(String[] args) { Scanner in new Scanner(System.in); int T in.nextInt(); while (T-- 0) { long a in.nextLong(); long b in.nextLong(); long p in.nextLong(); System.out.println(powMod(a, b, p)); } } }运行结果二、【模板】分数取模import java.util.Scanner; public class Main { static final long MOD 1000000007L; public static long powMod(long a, long b, long p) { long res 1; a a % p; while (b 0) { if (b % 2 1) { res res * a % p; } a a * a % p; b / 2; } return res % p; } public static void main(String[] args) { Scanner in new Scanner(System.in); int t in.nextInt(); while (t-- 0) { long a in.nextLong(); long b in.nextLong(); long invB powMod(b, MOD - 2, MOD); long ans a % MOD * invB % MOD; // 处理负数转为正模 if (ans 0) ans MOD; System.out.println(ans); } } }运行结果三、子数列求积import java.util.Scanner; public class Main { static final long MOD 1000000007L; public static long powMod(long a, long b, long p) { long res 1; a a % p; while (b 0) { if (b % 2 1) { res res * a % p; } a a * a % p; b / 2; } return res % p; } public static void main(String[] args) { Scanner in new Scanner(System.in); int n in.nextInt(); int q in.nextInt(); long[] pre new long[n 1]; pre[0] 1; for (int i 1; i n; i) { long x in.nextLong(); pre[i] pre[i - 1] * x % MOD; } StringBuilder sb new StringBuilder(); for (int i 0; i q; i) { int l in.nextInt(); int r in.nextInt(); long inv powMod(pre[l - 1], MOD - 2, MOD); long ans pre[r] * inv % MOD; sb.append(ans).append( ); } System.out.println(sb.toString().trim()); } }运行结果四、好多次方import java.util.Scanner; public class Main { static final long MOD 1000000007L; static final long PHI MOD - 1; // 1000000006 public static long powMod(long a, long b, long p) { long res 1; a a % p; while (b 0) { if (b % 2 1) { res res * a % p; } a a * a % p; b / 2; } return res % p; } public static void main(String[] args) { Scanner in new Scanner(System.in); int T in.nextInt(); while (T-- 0) { long a in.nextLong(); long b in.nextLong(); long c in.nextLong(); long exp powMod(b, c, PHI); long ans powMod(a, exp, MOD); System.out.println(ans); } } }运行结果五、放苹果import java.util.Scanner; public class Main { public static int dfs(int m, int n) { if (m 0) return 1; if (n 1) return 1; if (n m) return dfs(m, m); return dfs(m, n - 1) dfs(m - n, n); } public static void main(String[] args) { Scanner sc new Scanner(System.in); int m sc.nextInt(); int n sc.nextInt(); System.out.println(dfs(m, n)); } }运行结果

关于本文作者

来自尧图内容编辑团队

尧图内容编辑团队 内容团队

尧图内容编辑团队

本文由尧图网络内容编辑团队执笔。团队由资深项目经理、前端工程师与设计师组成,所有内容均来自亲手交付的真实项目,先讲清问题、再给出可落地的解法。尧图深耕北京网站建设十年,服务过京华建材集团、智造科技等各行业客户,把一线经验沉淀为可复用的行业观察。

  • 十年建站经验,覆盖建材、制造、服务、文创等
  • 项目经理把关选题与事实准确性
  • 工程师与设计师联合撰写专业细节
  • 统一编辑规范,保证文风与排版一致
  • 每月复盘转化数据,迭代选题方向

延伸阅读

相关资讯与近期热门内容

深度阅读推荐

建站决策前值得细读的三篇

网站改版的5个关键决策
2024-08-12

网站改版的5个关键决策

什么时候该改版、改到什么程度、如何避免流量掉光,京华建材集团改版复盘给出答案。

获取专属建站方案

看完文章,把您的行业与预算告诉我们,免费获取一份量身定制的官网建设方案与报价。

立即免费咨询