ACM2035_(递归法求幂)
/*
编写一个递归算法,求解m的n次方。
我们一般求解m的n次方,一般使用n个m相乘的办法来求解。
其实我们还可以使用另外一种更有效率的办法求解这个问题。
我们知道一个数的0次方等于1,一个数的1次方等于该数本身。
如果一个数的n次方的n可以被2整数,我们可以将求解的问题,
分解为m的(n/2)次方乘以m的(n/2)次方。如果不能被2整除,
则可以将问题求解转变为m乘以m的(n-1)次方,
通过这个递归的办法,我们可以很快的分解求出问题。
编写代码如下:
*/
unsigned long myPow(int m, int n)
{
unsigned long tmp;
if(n == )
return ;
if(n == )
return m;
if(n % == ){
tmp = myPow(m, n/);
return tmp*tmp;
}
else{
return m*myPow(m, n-);
}
}
下面的是AC过的
/*
人见人爱“^ B 时间限制:2000/1000 MS(JAVA /其他)内存限制:三万二千七百六十八分之六万五千五百三十六K(Java /其他的)
总提交(S):16529接受提交():11706 问题说明
求ā^ B的最后三位数表示的整数。
说明:A ^ B的含义是“”的乙次方“ 输入
B = 0,则表示输入数据的结束,不做处理。 产量
对于每个测试实例,请输出A ^乙的最后三位表示的整数,每个输出占一行。 采样输入
2 3
12 6
6789 10000
0 0 样本输出
8
984
1*/
#include<stdio.h>
int f(int m, int n, int p)
{
int k;
if(n==) return m%p;
k=f(m,n/,p);
return (k*k*(n%?m%p:))%p;
}
int main()
{
int m,n;
while(scanf("%d%d",&m,&n),n||m)
printf("%d\n",(f(m,n,))%);
return ;
}
ACM2035_(递归法求幂)的更多相关文章
- 信息竞赛进阶指南--递归法求中缀表达式的值,O(n^2)(模板)
// 递归法求中缀表达式的值,O(n^2) int calc(int l, int r) { // 寻找未被任何括号包含的最后一个加减号 for (int i = r, j = 0; i >= ...
- C语言之函数调用11—递归法求Hermite函数
/*递归法! ========================================== 题目: Hermite 函数:输入n.x,求Hn(x)? H0(x)=1; H1(x)=2*x; H ...
- 快速求幂(Quick Exponentiation)
接触ACM没几天,向各路大神求教,听说ACM主要是研究算法,所以便开始了苦逼的算法学习之路.话不多说,RT所示,学习快速求幂. 在头文件<math.h>或是<cmath>中,d ...
- 高效求幂取余 算法,复杂度 log(n)
做TopCoder SRM 576 D2 L3 题目时,程序有个地方需要对一个数大量求幂并取余,导致程序运行时间很长,看了Editoral之后,发现一个超级高效的求幂并取余的算法,之前做System ...
- NYOJ--102--次方求模(快速求幂取模)
次方求模 时间限制:1000 ms | 内存限制:65535 KB 难度:3 描述 求a的b次方对c取余的值 输入 第一行输入一个整数n表示测试数据的组数(n<100)每组测试只有一 ...
- 求幂运算、多项式乘法及Horner法则的应用
一,两种不同的求幂运算 求解x^n(x 的 n 次方) ①使用递归,代码如下: private static long pow(int x, int n){ if(n == 0) return 1; ...
- [BZOJ3684][拉格朗日反演+多项式求幂]大朋友和多叉树
题面 Description 我们的大朋友很喜欢计算机科学,而且尤其喜欢多叉树.对于一棵带有正整数点权的有根多叉树,如果它满足这样的性质,我们的大朋友就会将其称作神犇的:点权为\(1\)的结点是叶子结 ...
- C语言之函数调用17—递归法之中的一个般函数的调用(2)
//递归法 /* ================================================================== 题目:求F(60),当中F(n)定义例如以下: ...
- 2019-ACM-ICPC-南昌区网络赛-H. The Nth Item-特征根法求通项公式+二次剩余+欧拉降幂
2019-ACM-ICPC-南昌区网络赛-H. The Nth Item-特征根法求通项公式+二次剩余+欧拉降幂 [Problem Description] 已知\(f(n)=3\cdot f(n ...
随机推荐
- OpenJudge 2815 城堡问题 / Poj 1164 The Castle
1.链接地址: http://bailian.openjudge.cn/practice/2815/ http://poj.org/problem?id=1164 2.题目: 总时间限制: 1000m ...
- 24种设计模式--策略模式【Strategy Pattern】
刘备要到江东娶老婆了,走之前诸葛亮给赵云(伴郎)三个锦囊妙计,说是按天机拆开解决棘手问题,嘿,还别说,真是解决了大问题,搞到最后是周瑜赔了夫人有折兵呀,那咱们先看看这个场景是什么样子的. 先说这个场景 ...
- 修复Windows7的便签问题
工作的时候,喜欢利用Windows的附件“便签”,将自己要做的事情一一列在上面,显示在桌面上, 今天突然发现便签损坏,系统是元数据损坏,后来在网上查到解决方法,特此记录: 1. 以管理员身份运行 cm ...
- PHPUML 生成UML
Selecting the UML/XMI version To select which version of the UML/XMI standards you want your XMI to ...
- cakephp recursive -1,0,1,2 速查
-1 : model本身 0 :model本身 + belongTo + hasOne 1 :model本身 + belongTo + hasOne + hasMany 2: :model ...
- localstorage 使用
localstorage作为HTML5的一个特殊属性,在发布时就备受关注:最近总结了其一些小的用法,希望可以抛砖引玉. 因HTML5本地存储只能存字符串,所以所有数据存储的话,都要转化成字符串:而js ...
- 织梦DedeCMS网站地图模板
亲和百度蜘蛛,分页多层次特色,织梦系统最好用的网站地图! 用 DedeCMS(织梦) 系统搭建的网站多数都是以优化为主要目标的网站类型,既然是优化站 SEO 手段就离不开为网站设置网站地图.可是 De ...
- php内存管理
1.为什么需要内存管理 由于计算机的内存由操作系统进行管理,所以普通应用程序是无法直接对内存进行访问的, 应用程序只能向操作系统申请内存,通常的应用也是这么做的,在需要的时候通过类似malloc之类的 ...
- c#指针用法示例。
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.I ...
- yii2 安装
php版本必须是php5.4以上.记得配置php环境变量 1.下载https://github.com/yiisoft/yii2-app-advanced 2.php -r "readfil ...