前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >高精度 加减乘 阶乘 模板 ------------------------C语言——菜鸟级

高精度 加减乘 阶乘 模板 ------------------------C语言——菜鸟级

作者头像
Fivecc
发布2022-11-21 15:01:12
7020
发布2022-11-21 15:01:12
举报
文章被收录于专栏:前端ACE
代码语言:javascript
复制
long int res[N];
void add(long int *a,long int *b)//高精度加法 
{long int i,k=0,adw=0,flag=0,tem1,tem2;
    for(i=0;flag!=2;i++,k++)
        { if(a[i]==-1)tem1=0;else tem1=a[i];
           if(b[i]==-1)tem2=0; else tem2=b[i];
          res[k]=tem1+tem2+adw;//adw 进位位 
          adw=res[k]/10000;
          res[k]=res[k]%10000;
          if(a[i+1]==-1)flag++; 
          if(b[i+1]==-1)flag++;
        }if(adw)res[k++]=adw;//判断进位是否有值 
        res[k+1]=-1;//标记最高位 }
void sub(long int *a,long int *b)//高精度 减法 
{ long int tem,i,k=0,subw=0,flag=0;
    for(i=0;flag!=2;i++)
        {    if(b[i]==-1)tem=0;else tem=b[i];
             if(a[i]>=(tem+subw))res[k++]=a[i]-tem-subw,subw=0;//subw借位位 
             else res[k++]=10000+a[i]-tem-subw,subw=1;
             if(a[i+1]==-1)flag++;
             if(b[i+1]==-1)flag++;
        }
      while(res[k]<=0&&k>0)res[k]=0,k--;//去首位0 
        res[k+1]=-1;//标记最高位 
}
void mult(long int *a,long int *b)//高精度 乘法 
{   long int i,j,k;
    for(i=0;a[i]!=-1;i++)
    { 
      for(j=0;b[j]!=-1;j++)
      { res[i+j]+=a[i]*b[j];
if(res[i+j]>=10000)res[i+j+1]+=res[i+j]/10000,res[i+j]%=10000;
      }
        k=i+j+1; 
while(res[k]>=10000)res[k+1]+=res[k]/10000,res[k]%=10000,k++;
    }while(res[k]<=0&&k>0)k--;//去首位0 
    res[k+1]=-1;   }
void dsjc(long int n)//计算阶乘
{  long int i,j,m;long long int a[n];
      memset(a,0,sizeof(a));
      a[0]=1; j=0;m=0; //初始化
       do//计算阶乘 从 n 到 1 反计算
       { for(i=j=0;i<=m;i++)
         j+=a[i]*n,a[i]=j%C,j/=C;//C 为进制 此时 为 5位(100000)
       j?a[++m]=j:0;//判断是否进位
     }while(--n);
     printf("%ld",a[m]);//输出
     while(m) printf(" %05ld ",a[--m]);printf("\n");}
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018-06-01,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档