zoukankan      html  css  js  c++  java
  • 《信息学奥赛一本通》高精除以高精,求它们的商和余数。

    代码

    #include <cstdio>
    #include <iostream>
    #include <cstring>
    using namespace std;
    int a[101],b[101],c[101],d,i;
    void init (int a[])
    {//读入字符串s,用a[0]计算字符串s的位数,将数串s转换为数组a,并倒序存储。
     string s;
     cin>>s;
     //读入字符串s
     a[0]=s.length();
     //用a[0]计算字符串s的位数
     for(i=1;i<=a[0];i++);
     {//将数串s转换为数组a,并倒序存储
      a[i]=s[a[0]-i]-'0';
     }
    }
    void print(int a[])
    {//打印输出
     int i;
     if(a[0]==0)
     {
      cout<<0<<endl;
      return ;
     }
     for(i=a[0];i>0;i--)
     {
      cout<<a[i];
     }
     cout<<endl;
     return ;
    }
    int compare(int a[],int b[])
    {//比较a和b的大小关系,若a>b则为1,若a<b则为-1,若a=b则为0
     int i;
     if(a[0]>b[0])
     {
      return 1;
     }
     if(a[0]<b[0])
     {
      return -1;
     }
     for(i=a[0];i>0;i--)
     {
      if(a[i]>b[i])
      {
       return 1;
      }
      if(a[i]<b[i])
      {
       return -1;
      }
     }
     return 0;
    }
    void jian(int a[],int b[])
    {
     int flag,i;
     flag=compare(a,b);
     //调用比较函数判断大小
     if(flag==0)
     {
      a[0]=0;
      return ;
     }
     if(flag==1)
     {
      for(i=1;i<=a[0];i++)
      {
       if(a[i]<b[i])
       {//若不够减则向上借一位
        a[i+1]--;
        a[i]+=10;
       }
       a[i]-=b[i];
      }
      while(a[0]>0&&a[a[0]]==0)
      {//修正a的位数
       a[0]--;
      }
      return ;
     }
    }
    void numcpy(int p[],int q[],int det)
    {//复制p数组到q数组从det开始的地方
     for(int i=1;i<=p[0];i++)
     {
      q[i+det-1]=p[i];
     }
     q[0]=p[0]+det-1;
    }
    void chugao(int a[],int b[],int c[])
    {
     int i,tmp[101];
     c[0]=a[0]-b[0]+1;
     for(i=c[0];i>0;i--)
     {
      memset(tmp,0,sizeof(tmp));
      //数组清零
      numcpy(b,tmp,i);
      while (compare(a,tmp)>0)
      {//用减法来模拟
       c[i]++;
       jian(a,tmp);
      }
     }
     while(c[0]>0&&c[c[0]]==0)
     {
      c[0]--;
     }
     return ;
    }
    int main ()
    {
     memset(a,0,sizeof(a));
     memset(b,0,sizeof(b));
     memset(c,0,sizeof(c));
     init(a);
     init(b);
     chugao(a,b,c);
     print(c);
     print(a);
     return 0;
    }
    
  • 相关阅读:
    怎么样下载安装 pyinstaller
    怎样给python编译成dll文件
    解决jmeter报connection reset 错误的方法
    redis使用jmeter测试
    前端性能测试ShowSlow+Yslow
    性能测试工具curl-loader(linux)
    Js 数组返回去重后的数据
    批量处理sql 数据存入xml类型列
    SQL Server游标(转)
    SQL中varchar和nvarchar的区别
  • 原文地址:https://www.cnblogs.com/AlexKing007/p/12339509.html
Copyright © 2011-2022 走看看