2716 - X的Y次方

通过次数

0

提交次数

0

时间限制 : 1 秒 内存限制 : 128 MB

求X的Y次方。X的范围1-10,Y的范围1-20.

X和Y的值依次输入。

 

题目输入

题目输出

输入/输出样例

输入格式

5
20

输出格式

95367431640625

C语言解答

#include <stdio.h> 
int main() 
{
	int m,n,a[20000],carry,i,j,digit = 1,temp;
	a[0] = 1;
	scanf("%d %d",&m,&n);
	for(i = 1; i <= n; ++i) 
	{
		carry = 0; 
		for(j = 1; j <= digit; ++j) 
		{
			temp = a[j-1] * m + carry; 
			a[j-1] = temp % 10; 
			carry = temp / 10;
		}
		while(carry) 
		{
			a[++digit-1] = carry % 10; 
			carry /= 10; 
		} 
	} 
    for(i = digit; i >=1; --i) 
	{
		printf("%d",a[i-1]); 
	}
	return 0;
}

C++解答

#include<iostream>
using namespace std;

unsigned R[20000] = {0};

int main()
{
	int i,j;
	int X,Y;
	unsigned temp;
	unsigned temp1;
	unsigned temp2 = 1;
	cin >> X >> Y;
	R[0] = 1;
	for(i = 1; i <= Y; i++)
	{
		temp = 0;
		for(j = 1; j <= temp2; j++)
		{
			temp1 = R[j-1] * X + temp;
			R[j-1] = temp1 % 10;
			temp = temp1 / 10;
		} 
		while(temp)
		{
			R[++temp2-1] = temp % 10;
			temp /= 10;
		}
	}
	for(i = temp2;i >= 1; i--)
	{
		cout << R[i-1];
	}
	return 0;
}