作业帮 > 综合 > 作业

VC6.0++WINXP32位一个很简单的程序a1*2*3*4*5*6*7*8*9*10*11*12*13*14*15输

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/14 19:04:56
VC6.0++
WINXP32位
一个很简单的程序
a1*2*3*4*5*6*7*8*9*10*11*12*13*14*15
输出结果- -a应该使用什么数据类型呢?难道说,家用计算机的计算精度,真的不能计算出15!
任何计算机都没有这种数据类型,这种大数计算要自己想办法组织数据
今天碰到好几个大数计算了,给你一个可以计算10000!精确结果的,你可以用系统自带的计算器验证结果(在计算器的查看菜单选科学型就能直接计算n!)
#include
#define N 10000
int main()
{
int a[N]={1};
char d[4]={0};
int i,j,t,e,f=1,m=0;
int l=0;
int k=0;
int n;
char ch='N';
printf("n=");
scanf("%d",&n);
for(i=1;i=0;i--)
{
printf("%d",d[i]);
}
for(i=0;i=0;i--)
{
printf("%04d",a[i]);
}
}
printf("\n");
return 0;
}
再问: 搞明白了~看来整数的最大取值范围就只能是4294967295了,我想问一下,那么long long是否可以突破这个极限呢?不一定要回答的,我只是好奇。最后就是有long long型么?我VS6.0++用不了,VS2010还是用不了~这个真是有点搞不懂啊
再答: vs2010有long long 也就是 __int64,是64位的整数,就算是64位无符号整数,最大也就是18446744073709551615,double通过指数可以表示大一些的数,但精度不够,所以要求高精度的大数应用都得自己定义数据结构