nyoj112-指数运算
指数运算
时间限制:600 ms | 内存限制:65535 KB
难度:2
描述
写一个程序实现指数运算 X^N。(1<X<10,0<N<20)
输入
输入包含多行数据
每行数据是两个整数X N
数据以EOF结束
输出
于输入的每一行输出X^N的值
样例输入
2 1
3 2
样例输出
2
9
时间限制:600 ms | 内存限制:65535 KB
难度:2
描述
写一个程序实现指数运算 X^N。(1<X<10,0<N<20)
输入
输入包含多行数据
每行数据是两个整数X N
数据以EOF结束
输出
于输入的每一行输出X^N的值
样例输入
2 1
3 2
样例输出
2
9
#include<stdio.h>
int x,n;
int main()
{
long long int sum;
int i;
while(scanf("%d%d",&x,&n)!=EOF)
{
sum=1;
for(i=0;i<n;i++)
sum=sum*x;
printf("%lld\n",sum);
}
return 0;
}
下面是最优程序#include<cstdio>
#include<time.h>
using namespace std;
long long calc(long long n,long long m){
long long re=1;
while(m){
if(m&1)
re*=n;
n*=n;
m>>=1;
}
return re;
}
int main()
{
int x,n;
while(scanf("%d%d",&x,&n)!=EOF)
{
printf("%lld\n",calc(x,n));
}
}