当前位置: 首页 > news >正文

小数第N位【快速幂(快速指数)算法】--数论

小数第N位--数论

  • 题目
  • 【快速幂取模】代码
  • 快速幂模板代码

题目

在这里插入图片描述

【快速幂取模】代码

//小数第n位

#include <iostream>
#include <vector>
#include <string>
#include <algorithm>
#include <math.h>
#include <queue>

#include <cctype>

using namespace std;
//快速幂算法:pow_mod
//实现(base^exponent) % mod
long long pow_mod(long long base, long long exponent, long long mod) {
	long long result = 1;
	base %= mod;
	while (exponent > 0) {
		if (exponent % 2 == 1) {
			result = (result * base) % mod;
		}
		base = (base * base) % mod;
		exponent /= 2;
	}
	return result;
}

int main() {
	int a, b, n;
	cin >> a >> b >> n;
	int	mod = b * 1000;
	//计算 n 位开始的 3 位数字,固结果的范围是 [0, 999],固b*1000按3位数进行分组
	int	res = a  * pow_mod(10, n + 2, mod) % mod / b;
	//若指数较小可换成:int	res = int(int(a  * pow(10, n + 2)) % mod) / b;
	//(a × 10^(n+2)) % (b × 1000)  //实现a/b的小数点前是第n+3位 对 b×1000 取模,保留最后3位
	
	//为避免溢出固使用用【快速幂算法】-log(n) //pow()复杂度为n
	printf("%03d", res);
	//实现位数不够补足0
	return 0;
}

快速幂模板代码

#include <iostream>
using namespace std;

long long pow_mod(long long base, long long n ) {
	long long r = 1;
	while (n > 0) {
		if (n % 2 == 1)
			r = r * base;
		base *= base;
		n /= 2;
	}
	return r;
}


int main() {
	cout << pow_mod(2, 10);

	return 0;
}

http://www.dtcms.com/a/23770.html

相关文章:

  • fastadmin自定义弹窗
  • DeepSeek有哪些创新点
  • 游戏数据表管理系统的架构设计与优化实践
  • Python 面试题
  • QT入门看这一篇就够了——超详细讲解(40000多字详细讲解,涵盖qt大量知识)
  • 力扣144. 二叉树的前序遍历145. 二叉树的后序遍历94. 二叉树的中序遍历(非递归版)
  • Redis的基础使用
  • (8/100)每日小游戏平台系列
  • vscode插件开发
  • 50道题快速复习MySQL之准备篇
  • Unity截取RenderTexture某帧画面显示在Image上
  • 装多系统踩的坑
  • Unity中可靠的UDP实现
  • 三层渗透测试-DMZ区域 二三层设备区域
  • Redis 过期键(expires)机制详解
  • 【个人开发】deepspeed+Llama-factory 本地数据多卡Lora微调【完整教程】
  • 2025三掌柜赠书活动第五期:Elasticsearch实战(第2版)
  • 250217-数据结构
  • Jetson Agx Orin平台JP6.0-r36.3版本修复了vi模式下的原始图像损坏(线条伪影)
  • DeepSeek等大模型功能集成到WPS中的详细步骤
  • 【javascript】录音可视化
  • C++反转字符串
  • Android MVC、MVP、MVVM、MVI的架构的区别
  • numpy库
  • 基于若依开发的工程项目管理系统开源免费,用于工程项目投标、进度及成本管理的OA 办公开源系统,非常出色!
  • spring boot知识点1
  • matlab 三维时频图绘制
  • 蓝桥杯篇---IAP15F2K61S2矩阵键盘
  • js第八题
  • 算法——结合实例了解Minimax算法(极小化极大算法)