我对大数运算还很陌生啊。一步一步来,有错的地方还请大家指教。
先做这个: 输入一个个位数,求他的n次方。比如 2的 31次方是2147483648。
上代码:
程序代码:
发现写的这个程序能做两位数之内的,到三位数就不行了
[ 本帖最后由 有容就大 于 2012-1-17 20:01 编辑 ]
先做这个: 输入一个个位数,求他的n次方。比如 2的 31次方是2147483648。
上代码:
程序代码:#include <stdio.h>
#include <math.h>
int main(void)
{
int n, m, s = 1, i = 0;
int k = 1, j;
int a[100] = { 0 }, b[100] = { 0 };
printf("\nplease input n(1 - 9):");
scanf("%d", &n);
printf("\nplease input m:");
scanf("%d", &m);
printf("\n");
a[0] = 1;
while (i < m)
{
for (j = 0; j <= k ; j ++)
{
s = a[j] * n;
if ((s + b[j]) < 10)
a[j] = s + b[j];
else
{
a[j] = (s + b[j]) % 10;
b[j + 1] = (s + b[j]) / 10;
}
}
if (a[--j]) k++;
for (j = 0; j <= k; j++)
b[j] = 0;
i++;
}
for (j = k - 1; j >= 0; j--)
printf("%d", a[j]);
printf("\n\n");
return 0;
}发现写的这个程序能做两位数之内的,到三位数就不行了
[ 本帖最后由 有容就大 于 2012-1-17 20:01 编辑 ]

梅尚程荀
马谭杨奚







。哇咔咔,很难想象大数的大数次方是多少啊。