大数与小数模板(乘法,加法)

来源:互联网 发布:百度网盘搜索 知乎 编辑:程序博客网 时间:2024/05/01 14:08

代码:

#include <stdio.h>  #include <string.h>  //大数乘小数void mult(char c[],int m,char t[])  {      char s[100];      int len=strlen(c);      for(int i=0; i<len; i++)          s[len-i-1]=c[i]-'0';      int flag,add=0;      for(int i=0; i<len; i++)      {          int k=s[i]*m+add;          if(k>=10)          {              s[i]=k%10;              add=k/10;              flag=1;          }          else          {              s[i]=k;              add=0;              flag=0;          }      }      while(add)      {          s[len++]=add%10;          add/=10;      }      for(int i=0; i<len; i++)          t[len-1-i]=s[i]+'0';      t[len]='\0';  }  //大数加小数  void addt(char a[],int b,char c[])  {      int len=strlen(a);      char s[100];      for(int i=0; i<len; i++)          s[len-i-1]=a[i]-'0';      int add=0;      for(int i=0;; i++)      {          if(i>=len)          {              s[i]=0;              len++;          }          int k=s[i]+b%10+add;          b/=10;          if(k>=10)          {              s[i]=k%10;              add=k/10;          }          else          {              s[i]=k;              add=0;          }          if(b==0&&add==0)break;      }      for(int i=0; i<len; i++)          c[len-1-i]=s[i]+'0';      c[len]='\0';  }  int main()  {      char c[1000],t[1000],sum[1000];      int m;      while(~scanf("%s%d",c,&m))      {          mult(c,m,t);          printf("%s\n",t);          addt(c,m,sum);          printf("%s\n",sum);      }      return 0;  }  

来源:http://blog.csdn.net/libin56842/article/details/9362861

0 0
原创粉丝点击