快速幂或找规律求a的b次方的最后一位-HDU1097
来源:互联网 发布:怎么查看数据库ip 编辑:程序博客网 时间:2024/05/16 16:22
https://vj.xtuacm.cf/contest/view.action?cid=125#problem/E
A hard puzzle
Problem Description
lcy gives a hard puzzle to feng5166,lwg,JGShining and Ignatius: gave a and b,how to know the a^b.everybody objects to this BT problem,so lcy makes the problem easier than begin.
this puzzle describes that: gave a and b,how to know the a^b’s the last digit number.But everybody is too lazy to slove this problem,so they remit to you who is wise.
Input
There are mutiple test cases. Each test cases consists of two numbers a and b(0
#include<cstdio> int mod(int a,int b,int k){ int ans=1; a=a%k; while(b>0){ if(b%2==1) ans=(ans*a)%k; b/=2; a=(a*a)%k; } return ans; } int main(){ int a,b; while(scanf("%d%d",&a,&b)==2) printf("%d\n",mod(a,b,10)); return 0; }
这是直接的求法。看别人的题解,竟然还有一个规律:
尾数为0,1,5,6的不管是多少次方尾数依然不变,而尾数为4和9的每2次循环,
2,3,7,8为每4次循环。循环结果如下:
0,1,5,6:位数永远是0,1,5,6
2:6,2,4,8循环
3:1,3,9,7循环
4:6,4循环
7:1,7,9,3循环
8:6,8,4,2循环
9:1,9循环
好的,可以水过了:
#include<cstdio> int div[10]={1,1,4,4,2,1,1,4,4,2}; int f[10][4]={{0},{1},{6,2,4,8},{1,3,9,7},{6,4},{5},{6},{1,7,9,3},{6,8,4,2},{1,9}}; int main(){ int a,b; while(scanf("%d%d",&a,&b)==2) printf("%d\n",f[a%10][b%div[a%10]]); return 0; }
- 快速幂或找规律求a的b次方的最后一位-HDU1097
- 快速幂求a^b结果的最后一位
- 求n的n次方最后一位
- 5,29 求a的b次方 的最后三位数
- 5,29 求 a的 b次方的最后三位数
- 求A的B次方的最后三位整数
- 快速求幂的最后一位
- 5,29 找规律 利用数组 求a的a次方的 个位数
- 求A^B的最后三位数表示的整数。 说明:A^B的含义是“A的B次方”
- 求一个数的 a 的 b 次方的结果的最后一位数。
- HDU1097暴力打表找规律a^b
- A hard puzzle (a^b最后一个数字,找规律)
- 求a的b次方、a的b次方对m取模
- 求a的b次方、a的b次方对m取模
- 求A^B的最后三位
- 求矩阵的n次方 快速幂
- 快速幂求x的n次方
- OJ刷题之《求a的b次方》
- [日推荐] 『美女hold住』你要的美女图,这都有,你懂的 !
- 在Ubuntu16.04中安装MySQL
- JDBC学习
- 重写(Overriding)与重载(Overloading)的区别
- java事务全解析(六)--使用动态代理(Dynamic Proxy)完成事务
- 快速幂或找规律求a的b次方的最后一位-HDU1097
- 2017多校训练Contest2: 1003 Maximum Sequence hdu6047
- 【折半枚举】HDU_5616_Jam's balance
- 正则表达式
- golang 数组去重
- Andrew Ng机器学习课程笔记(五)之应用机器学习的建议
- [JavaScript]页面判断上传文件大小
- 概率基础4-数字特征与特征函数
- Linux功耗管理(11)_Runtime PM之功能描述