较大数据的问题

大数据运算和放置
这里先列部分遇到的问题
1.100的阶乘
这里在我所学到的数据类型只有浮点数可以放置但是得到的结果并不正确
所以我使用数组来放置并计算

include<stdio.h>

int main()
{
int arr[10000]={1,0};
int k=1;
int n=0;
for(int i=1;i<=100;i++)
{
for(int j=99;j>=0;j--)
{
if(arr[j]!=0)
{
n=j+1;//这里获取到位数
break;
}
}
for(int j=0;j<n;j++)
{
arr[j]=arr[j]*i;//各位进行乘上i
}
for(int j=0;j<n;j++)
{
if(arr[j]>=100)//数组一次放置2位数
{
arr[j+1]+=arr[j]/100;
arr[j]=arr[j]%100;
}

}

}
for(int i=n;i>=0;i--)
{
printf("%d",arr[i]);
}
printf(" %d",n);
return 0;
}
PAT 1002
首先要输入一个大位数也是遇到没有能接收下较大数据的数据这里我们使用字符串来接收
(稍后更新)

猜你喜欢

转载自www.cnblogs.com/Maoey/p/10847018.html
今日推荐