1.通过顺序表实现存储(数组)。
2.计算:
I>用每个元素存储一位整数。
II>用整个数组存储一个大整数
从后往前算
怎么知道位数计算多少位?
a.岗哨 start
b.计数器 cnt
i>13的1次方
x=a[499]*13
a[499]=x%10
cp=x/10
a[start]=cp
start--
ii>13的2次方
x=a[499]*13
a[499]=x%10
cp=x/10
x=a[498]*13+cp
a[498]=x%10
cp=x/10
a[start]=cp
start--
iii>13的3次方
x=a[499]*13
a[499]=x%10
cp=x/10
x=a[498]*13+cp
a[498]=x%10
cp=x/10
x=a[497]*13+cp
a[497]=x%13
cp=x/10
a[start]=cp;
start--
3.代码:
#include<stdio.h>
#define N 500
int main(void){
int a[N];
int x,i,j,cp,start;
a[N-1]=1,start=N-2;
for(i=1;i<101;i++){
cp=0;
for(j=N-1;j>start;j--){
x=a[j]*13+cp;
a[j]=x%10;
cp=x/10;
}
while(cp){
a[start--]=cp%10;
cp=cp/10;
}
}
for(i=start+1;i<N;i++){
printf("%d",a[i]);
}
return 0;
}
2.计算:
I>用每个元素存储一位整数。
II>用整个数组存储一个大整数
从后往前算
怎么知道位数计算多少位?
a.岗哨 start
b.计数器 cnt
i>13的1次方
x=a[499]*13
a[499]=x%10
cp=x/10
a[start]=cp
start--
ii>13的2次方
x=a[499]*13
a[499]=x%10
cp=x/10
x=a[498]*13+cp
a[498]=x%10
cp=x/10
a[start]=cp
start--
iii>13的3次方
x=a[499]*13
a[499]=x%10
cp=x/10
x=a[498]*13+cp
a[498]=x%10
cp=x/10
x=a[497]*13+cp
a[497]=x%13
cp=x/10
a[start]=cp;
start--
3.代码:
#include<stdio.h>
#define N 500
int main(void){
int a[N];
int x,i,j,cp,start;
a[N-1]=1,start=N-2;
for(i=1;i<101;i++){
cp=0;
for(j=N-1;j>start;j--){
x=a[j]*13+cp;
a[j]=x%10;
cp=x/10;
}
while(cp){
a[start--]=cp%10;
cp=cp/10;
}
}
for(i=start+1;i<N;i++){
printf("%d",a[i]);
}
return 0;
}