C++的一些心得与总结
1.关于字符与整型的转换 及 类型转换
int main()
{
signed char u=259;
cout<<static_cast<int>(u);
getchar();
return 0;
}
2. 1000! 的计算,
由于计算阶乘的结果比较庞大,难以使用long double 等数据类型存储,
所以改变结果的存储方式,计算的思想是:当结果超过四位数时,如10003,
对此数进行分割为1,0003,然后再进行计算。
long a[10000];
int i,j,l,c,n,m=0,w;
cout<<"\n N=";
cin>>n;
a[0]=1;
for(i=1;i<=n;i++)
{
c=0;
for(j=0;j<=m;j++)
{
a[j]=a[j]*i+c;
c=a[j]/10000;
a[j]=a[j]%10000;
}
if(c>0)
{
m++;
a[m]=c;
}
}
w =static_cast<int>(m*4+log10(static_cast<double>(a[m]))+1); //结果的位数
writeToFile(a, n, m, w, i);
int main()
{
signed char u=259;
cout<<static_cast<int>(u);
getchar();
return 0;
}
2. 1000! 的计算,
由于计算阶乘的结果比较庞大,难以使用long double 等数据类型存储,
所以改变结果的存储方式,计算的思想是:当结果超过四位数时,如10003,
对此数进行分割为1,0003,然后再进行计算。
long a[10000];
int i,j,l,c,n,m=0,w;
cout<<"\n N=";
cin>>n;
a[0]=1;
for(i=1;i<=n;i++)
{
c=0;
for(j=0;j<=m;j++)
{
a[j]=a[j]*i+c;
c=a[j]/10000;
a[j]=a[j]%10000;
}
if(c>0)
{
m++;
a[m]=c;
}
}
w =static_cast<int>(m*4+log10(static_cast<double>(a[m]))+1); //结果的位数
writeToFile(a, n, m, w, i);
浙公网安备 33010602011771号