HDOJ2035 人见人爱A^B 二分法
2014-03-11 19:16
288 查看
原题链接
优化版本
#include <stdio.h>
int pow(int n, int t){
if(t == 0) return 1;
if(t == 1) return n % 1000;
if(t & 1) return pow(n * n % 1000, t / 2) * n % 1000;
else return pow(n * n % 1000, t / 2) % 1000;
}
int main(){
int a, b;
while(scanf("%d%d", &a, &b), a || b){
printf("%d\n", pow(a, b));
}
return 0;
}
//二分法2014-3-11 19:10:15 #include <stdio.h> int f(int a, int b){ if(b == 1) return a; int s = f(a, b / 2); if(b & 1) return s * s * a % 1000; else return s * s % 1000; } int main(){ int a, b; while(scanf("%d%d", &a, &b), a || b){ a %= 1000; printf("%d\n", f(a, b)); } return 0; }
优化版本
#include <stdio.h>
int pow(int n, int t){
if(t == 0) return 1;
if(t == 1) return n % 1000;
if(t & 1) return pow(n * n % 1000, t / 2) * n % 1000;
else return pow(n * n % 1000, t / 2) % 1000;
}
int main(){
int a, b;
while(scanf("%d%d", &a, &b), a || b){
printf("%d\n", pow(a, b));
}
return 0;
}
相关文章推荐
- Plus One
- HDU 2187 A sequence of numbers
- HDOJ2035 人见人爱A^B 二分法
- 转载 SPARSE列的使用
- ubuntu下安装Apache+PHP+Mysql
- Java操作properties文件
- Linux内存管理:逻辑地址到线性地址和物理地址的转换
- lsof详解
- 网络131 陈镜宇 第二周作业
- hiredis示例代码example-ac.c的编译出现缺少ae的解决方法总结
- 黑马程序员___银行业务调度系统
- 研究生导师的肺腑之言
- Source Insight常用设置和技巧大全
- viewpager wrap_content 不显示
- ubuntu下查看服务状态
- Js基础知识
- oracle 查询及删除表中重复数据
- 在C#中使用代理(即委托)的方式触发事件(观察者模式)
- 用 JdbcTemplate 进行批量插入或更新操作
- Wpf 抽屉效果