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

蓝桥杯备考----》快速幂算法之乘方

这道题就是用快速幂的算法,但是如果结果超过1e9的时候就要返回-1了,同时,我们也要防止a溢出,a大于1e9的时候及时退出,但是注意,我们不能在a*=a之后判断,毕竟,如果这是最后一次循环的话,结果可能已经正好存在ret里面了,这时候我们 突然返回可能会破坏我们的结果,这下面才是我们的正确代码

#include <iostream>
using namespace std;
typedef long long ll;
ll a,b;//a的b次幂
 
ll quickcalc()
{
	ll ret=1;
	while(b)
	{
		if(a>1e9) return -1; 
		if(b&1)
		{
			ret*=a;	
		} 
		if(ret>1e9) return -1;
		
		b>>=1;
		a*=a;

	}
	return ret;
}
int main()
{
	cin >> a >> b;
	ll r = quickcalc();
	cout << r << endl;
	return 0;
}


http://www.kler.cn/a/592412.html

相关文章:

  • 大模型开发(六):LoRA项目——新媒体评论智能分类与信息抽取系统
  • 力扣100二刷——图论、回溯
  • electron框架(1.0)认识electron和基础创建
  • 使用PyMongo操作MongoDB(一)
  • MR-Flink-Spark任务提交-常用命令
  • 物联网的数据传输与处理!
  • [GHCTF 2025]真会布置栈吗?
  • WebGL学习2
  • 【红黑树】—— 我与C++的不解之缘(二十五)
  • Windows 图形显示驱动开发-WDDM 3.0功能- 硬件翻转队列(四)
  • K-均值聚类
  • Python 实现高效的实体扩展算法
  • 正点原子[第三期]Arm(iMX6U)Linux移植学习笔记-6.2uboot启动流程-lowlevel_init,s_init,_main函数执行
  • Windows 11右键菜单栏如何修改为Windows 10风格【完整教程】以及如何恢复Win11菜单栏风格
  • 技术改变生活:探索新科技的力量与影响
  • element-plus中Dropdown下拉菜单组件的使用
  • 论文解读:含可靠置信度的视频超分辨显微成像(频域卷积+贝叶斯深度学习)
  • vscode 配置服务器远程连接
  • 构建下一代AI Agent:自动化开发与行业落地全解析
  • langgraph简单Demo(使用langserve实现外部调用)