高位数的幂运算

计算7的34次方

【分析】

计算-一个数的n次方可通过简单的一重循环实现,但7的34次方是一个非常大的数,它超过了计算机的表示范围。这其实是一-个大整数存储问题,可以利用数组来存储。

要计算7的34次方,将1存储在数组a中,不断地将其与7相乘,循环34次,数组a的值就是7的34次方。任何一个整数(假设位数为n)与7相乘,结果的位数不会超过n+1。 从最低位到最高位,依次将每位数与7相乘,如果有进位,将进位存入临时变量C中,则把余数存入当前位。再将下一位数与7相乘时,还需将此时的相乘结果加上进位c。

code:
 

#include<stdio.h>
void main()
{
	static int a[34];
	int i, j, k, c = 0;
	a[0] = 1;
	k = 0;
	printf("7的34次方是: ");
	for (i = 1; i <= 34; i++)
	{
		for (j = 0; j <= k; j++)
		{
			a[j] = a[j] * 7 + c;
			c = a[j] / 10;
			a[j] %= 10;
		}
		if (c)
		{
			k++;
			a[k] = c;
			c = 0;
		}
	}
	for (; k >= 0; k--)
		printf("%d", a[k]);
	printf("\n");
	getchar();
}

结果:

猜你喜欢

转载自blog.csdn.net/baidu_36669549/article/details/104160411