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
#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));
}
}





posted @ 2018-04-07 22:09  浮生惘语  阅读(92)  评论(0编辑  收藏  举报