【九度】题目1441:人见人爱 A ^ B (二分求幂)
2017-01-16 16:26
369 查看
时间限制:1 秒
内存限制:128 兆
特殊判题:否
提交:2047
解决:1570
题目描述:
求A^B的最后三位数表示的整数。说明:A^B的含义是“A的B次方”
输入:
输入数据包含多个测试实例,每个实例占一行,由两个正整数A和B组成(1<=A,B<=10000),如果A=0, B=0,则表示输入数据的结束,不做处理。
输出:
对于每个测试实例,请输出A^B的最后三位表示的整数,每个输出占一行。
样例输入:
样例输出:
// 二分求幂.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
int _tmain(int argc, _TCHAR* argv[])
{
int a,b;
while (scanf("%d%d",&a,&b))
{
if(a==0&&b==0) break;
int ans=1;
while (b!=0)
{
if(b%2==1){//将质数b转换为二进制的形式
ans*=a;
ans%=1000;
}
b/=2;
a*=a; //a的权重 即此时多少次
a%=1000;//a^b的后三位, 只需要将a的后三位和b相乘就行
}
printf("%d",ans);
}
return 0;
}
内存限制:128 兆
特殊判题:否
提交:2047
解决:1570
题目描述:
求A^B的最后三位数表示的整数。说明:A^B的含义是“A的B次方”
输入:
输入数据包含多个测试实例,每个实例占一行,由两个正整数A和B组成(1<=A,B<=10000),如果A=0, B=0,则表示输入数据的结束,不做处理。
输出:
对于每个测试实例,请输出A^B的最后三位表示的整数,每个输出占一行。
样例输入:
2 3 12 6 6789 10000 0 0
样例输出:
8 9841
// 二分求幂.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
int _tmain(int argc, _TCHAR* argv[])
{
int a,b;
while (scanf("%d%d",&a,&b))
{
if(a==0&&b==0) break;
int ans=1;
while (b!=0)
{
if(b%2==1){//将质数b转换为二进制的形式
ans*=a;
ans%=1000;
}
b/=2;
a*=a; //a的权重 即此时多少次
a%=1000;//a^b的后三位, 只需要将a的后三位和b相乘就行
}
printf("%d",ans);
}
return 0;
}
相关文章推荐
- 题目1441:人见人爱 A ^ B(二分求幂)
- 九度OJ-1441:人见人爱 A^B(二分求幂)
- 题目1441:人见人爱 A ^ B(二分求幂)
- 九度OJ题目1441:人见人爱 A ^ B
- 【九度OJ】题目1441:人见人爱 A ^ B 解题报告
- 九度题目1441:人见人爱 A ^ B
- 题目1441:人见人爱 A ^ B
- 题目1441:人见人爱 A ^ B
- HDOJ 2035 人见人爱A^B-----二分快速求幂
- 九度OJ 1085 求root(N, k) -- 二分求幂及快速幂取模
- 九度OJ 1085 求root(N, k) -- 二分求幂及快速幂取模
- 九度 1441 1442 1443二分求幂法
- 题目1441:人见人爱 A ^ B
- 九度OJ月赛---题目1534:数组中第K小的数字 (二分搜索)
- 57-题目1441:人见人爱 A ^ B
- 九度oj1443 矩阵乘法加二分求幂
- 九度OJ 1442/HDU 2817 (二分求幂)
- 九度OJ 二分求幂法、快速取模之《root(n,k)》
- 题目1441:人见人爱 A ^ B
- 九度题目1069:查找学生信息(二分查找)