直接插入排序,希尔排序
求大数阶乘:
// 1000 的阶乘 2568 位
#include <stdio.h>
int a[3000];
void show(int k)
{
int i=0;
printf("位数 %d 位\n",k);
for (i=k-1; i>=0; i--)
{
printf("%d",a[i]);
}
}
int fanc(int n)
{
int w=0;
int i=0, j=0;
int t=n;
int k=0; // 表示数据的位数。
while(t)
{
a[i++] = t%10;
t/=10;
k++;
}
for (j=n-1; j>1; j--)
{
w=0; // 表示进位
for (i=0; i<k; i++)
{
t = a[i]*j+w;
a[i] = t%10;
w = t/10;
}
while(w)
{
a[i++] = w%10;
w/=10;
k++;
}
}
return k;
}
int main()
{
int n;
int k=0;
scanf("%d",&n);
k = fanc(n);
show(k);
printf("\n");
return 0;
}
原文:https://www.cnblogs.com/jianqiao123/p/12041652.html