【hdu 1061】Rightmost Digit(水题 快速幂 分治)
时间:2019-09-04
本文章向大家介绍【hdu 1061】Rightmost Digit(水题 快速幂 分治),主要包括【hdu 1061】Rightmost Digit(水题 快速幂 分治)使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
题目分析:
虽然只要求pow(x,x)%10,但是思路和求快速幂pow(x,y)%mod一样。
前者相当于后者的简化版。
解题思路
- 若次数y为1,则pow(x,1)%mod = x%mod;
- 若次数y为奇数2n+1,可求出pow(x,n),pow(x,y) = pow(x,n) * pow(x,n) * x
- 若次数y为偶数2n,可求出pow(x,n),pow(x,y) = pow(x,n) * pow(x,n)
代码如下(G++):
#include <bits\stdc++.h>
using namespace std;
typedef long long ll;
ll mod = 10;
//快速幂求pow(x,y)%mod
ll pow_mod(ll x, ll y) {
//若次数y为1,则pow(x,1)%mod = x%mod;
if (y == 1) return x;
//若次数y为奇数2n+1,可求出pow(x,n),pow(x,y) = pow(x,n)*pow(x,n)*x
//若次数y为偶数2n,可求出pow(x,n),pow(x,y) = pow(x,n)*pow(x,n)
ll p = pow_mod(x, y / 2) % mod;
if (y % 2) return (p * p * x) % mod;
else return (p * p) % mod;
}
int main() {
int t;
cin >> t;
while (t--) {
ll n;
cin >> n;
cout << pow_mod(n, n) << endl;
}
return 0;
}
原文地址:https://www.cnblogs.com/zhangjiuding/p/11458437.html
- 有趣的算法(三)——Hash算法
- JavaScript中的数据类型
- Logistic回归算法及Python实现
- <script>元素在XHTML中的用法
- 有趣的算法(四)——一致性Hash算法模拟redis集群
- ASP.NET5 中静态文件的各种使用方式服务端的静态文件开启目录浏览呈现默认文件使用UseFileServer方法文件类型基于IIS的考虑最佳实践
- 使用ASP.NET Identity以手机短信实现双重验证创建一个ASP.NET 5项目运行应用程序使用SMS短信进行双重验证开启双重验证使用双重验证登陆应用程序禁用账户来防止暴力破解
- ASP.NET 5 之 错误诊断和它的中间件们配置错误处理页面在Development阶段使用错误页面运行时信息页面欢迎页面
- 有趣的算法(五) ——Dijkstra双栈四则运算
- CSS深入理解学习笔记之float
- 轻松初探 Python 篇(五)—dict 和 set 知识汇总
- 全面解析C#中的异步编程为什么要异步过去糟糕的体验一个新的方式Tasks基于任务的异步编程模型Async和await时间处理程序和无返回值的异步方法结束语
- CSS深入理解学习笔记之absolute
- 5个经典的JavaScript面试题
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 为了不让代码看起来像一坨* 我在工作中反复用了这个
- 在 Go 语言中 Patch 非导出函数
- SpringCloud 配置中心服务端配置解析流程分析
- Qt多线程编程之线程池
- PWN:Tcache Attack原理
- [Go]GO语言实战-GO-FLY在线客服cobra库命令行参数解析
- [Go]GO语言实战-GO-FLY在线客服gorm导入sql文件
- Day7.数据类型-集合
- 详解一条查询select语句和更新update语句的执行流程
- JSP 开发环境搭建与项目运行(二)
- Activity启动时生命周期汇总
- 「程序员」Flutter:从网络获取数据遇到的坑
- 程序员:拿到新电脑如何配置Git环境
- What?数据量巨大还不分库分表?JDBC 入门与项目实战
- 简书:如何去掉图片下面烦人的“图片发自简书App”