HDU 1097(m次幂的个位数 规律)
题意是求 n^m 结果的最后一位数。
可以用快速幂取模的方法做,当然本题还有更简单的方法:
所有数字( 0 - 9 )的 m 次幂的个位数不会受进位的影响,只收到乘数的影响,所以在结果中一旦出现之前出现过的数字即可以这两个数字之间的一段作为循环,0 - 9 最多十个数字,其循环的长度一定小于 10,计算发现各数字的规律如下:
0:0 ...
1:1 ...
2:2,4,8,6,2,...
3:3,9,7,1,3,...
4:4,6,4,...
5:5 ...
6:6 ...
7:7,9,3,1,7,...
8:8,4,2,6,8,...
9:9,1,9,...
还要注意 n 不一定是个位数,要记得取个位数。
代码如下:
#include <bits/stdc++.h>
using namespace std;
int main()
{
int a,b;
while(~scanf("%d%d",&a,&b))
{
if(!b)
{
puts("");
continue;
}
a %= ;
switch(a)
{
case :
puts(""); break;
case :
puts(""); break;
case :
switch(b%)
{
case : puts(""); break;
case : puts(""); break;
case : puts(""); break;
case : puts("");
} break;
case :
switch(b%)
{
case : puts(""); break;
case : puts(""); break;
case : puts(""); break;
case : puts("");
} break;
case :
printf("%d\n",b&?:); break;
case :
puts(""); break;
case :
puts(""); break;
case :
switch(b%)
{
case : puts(""); break;
case : puts(""); break;
case : puts(""); break;
case : puts("");
} break;
case :
switch(b%)
{
case : puts(""); break;
case : puts(""); break;
case : puts(""); break;
case : puts("");
} break;
case :
printf("%d\n",b&?:); break;
}
}
return ;
}
这是本人的比较繁琐的方法,别人优秀的做法如下:
#include <bits/stdc++.h>
using namespace std;
int d[] = {,,,,,,,,,};
int f[][]={{},{},{,,,},{,,,},{,},{},{},{,,,},{,,,},{,}};
int main(){
int a,b;
while(~scanf("%d%d",&a,&b))
printf("%d\n",f[a%][b%d[a%]]);
return ; }
HDU 1097(m次幂的个位数 规律)的更多相关文章
- hdu 2865 Polya计数+(矩阵 or 找规律 求C)
Birthday Toy Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Tota ...
- hdu 1097 A hard puzzle 快速幂取模
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1097 分析:简单题,快速幂取模, 由于只要求输出最后一位,所以开始就可以直接mod10. /*A ha ...
- HDU 5793 A Boring Question (找规律 : 快速幂+逆元)
A Boring Question 题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=5793 Description Input The first l ...
- HDU 1097.A hard puzzle-快速幂/取模
快速幂: 代码: ll pow_mod(ll a,ll b){ ll ans=; while(b){ ==){ ans=ans*a%mo ...
- HDU 5793 A Boring Question ——(找规律,快速幂 + 求逆元)
参考博客:http://www.cnblogs.com/Sunshine-tcf/p/5737627.html. 说实话,官方博客的推导公式看不懂...只能按照别人一样打表找规律了...但是打表以后其 ...
- HDU 1097 快速幂
#include<iostream> using namespace std; long long quick(long long a,long long b,int c) { ; a=a ...
- HDU 1847 Good Luck in CET-4 Everybody!(规律,博弈)
Good Luck in CET-4 Everybody! Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K ...
- HDU 4349 Xiao Ming's Hope 找规律
原题链接:http://acm.hdu.edu.cn/showproblem.php?pid=4349 Xiao Ming's Hope Time Limit: 2000/1000 MS (Java/ ...
- HDU 2855 (矩阵快速幂)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2855 题目大意:求$S(n)=\sum_{k=0}^{n}C_{n}^{k}Fibonacci(k)$ ...
随机推荐
- 【BZOJ2655】calc DP 数学 拉格朗日插值
题目大意 一个序列\(a_1,\ldots,a_n\)是合法的,当且仅当: 长度为给定的\(n\). \(a_1,\ldots,a_n\)都是\([1,m]\)中的整数. \(a_1, ...
- nswl 收集日志
nswl 收集日志 参考链接:https://docs.citrix.com/en-us/citrix-adc/12-1/system/web-server-logging.html PS C:\Us ...
- DNSCrypt
DNSCrypt 来源 https://www.cnblogs.com/qiudabai/articles/9219840.html https://www.opendns.com/about/inn ...
- 自学Python4.5-装饰器举例
自学Python之路-Python基础+模块+面向对象自学Python之路-Python网络编程自学Python之路-Python并发编程+数据库+前端自学Python之路-django 自学Pyth ...
- MVC使用记录
如何获得MVC中,控制器和方法名字.这可以用于给当前选定菜单加个选定样式 获取控制器名称:(在View中写法) ViewContext.RouteData.Values["controlle ...
- sql语句循环截取字符串
测试环境 : mssql2016 express 需求 : 拆分字符串执行insert 思路 : 在循环中截取分隔符之间的字符串.起止点位置计算 起点从0开始startIndex,查找第一个分隔 ...
- poj3926 parade (单调队列+dp)
题意:有n行路,每行路被分成m段,每一段有长度和权值,要求从最下面一行走到最上面一行某个位置,可以从相邻两行的同一列交点往上走,并且在同一行走的长度要<=K,求走过的最大权值 设f[i][j]为 ...
- HDU-6370 Werewolf(杭电多校6I)
一群人在玩狼人杀,村民只会说真话,狼人会说真话和假话,要你求出那些人一定是村民或者那些人一定是狼人.想到了并查集不会用... 1,如果全部人都是狼人,一定可以所以一定是村民的人一定是0. 2, 加入是 ...
- MVC过滤器处理Session过期
一.自定义一个Action过滤器 public class CheckSession: ActionFilterAttribute { public override void OnActionExe ...
- Win32-API: 终于能正常的捕获焦点事件: WM_COMMAND、BN_SETFOCUS、EN_SETFOCUS
学习和使用win32-api来写窗口程序算算也有二三年了. 以前有个需求,想捕获控件的焦点事件(SETFOCUS. KILLFOCUS),我一直认为应该捕获 WM_SETFOCUS 和 WM_KILL ...