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);

posted on 2005-11-22 20:17  Welfare  阅读(358)  评论(0)    收藏  举报

导航