高精度复习

发布时间:2019年08月29日 阅读:290 次

https://www.luogu.org/problem/P1601

#include <iostream>
#include<bits/stdc++.h>
using namespace std;
int a[1000],b[1000],c[1000];
void read(int a[]){

    string s;
    cin>>s;
    int len  = s.size();
    a[0] = len;
    for(int i=0;i<len;i++){
        a[len-i] = s[i]-'0';
    }

}
void  out(int a[]){

 for(int i=a[0];i>=1;i--){

    cout<<a[i];

 }
 cout<<endl;
}
void calc(){

   memset(c,0,sizeof c);
   int len = max(a[0],b[0]);
   int tmp = 0;
   int top=1;
   for(int i=1;i<=len;i++){
   c[i] = a[i]+b[i]+tmp;
   tmp = c[i]/10;
   c[i]%=10;
//   top++;

   }
   if(tmp!=0)c[++len] = tmp;
   c[0] = len;
}
int main()
{
    //string a,b;
//    cin>>a>>b;
    read(a);
    read(b);
//    out(a);
//    out(b);
    calc();
    out(c);
    return 0;
}

bLue的除法:

#include <iostream>
#include<bits/stdc++.h>
using namespace std;

int main()
{

    int a,b;
    while(cin>>a>>b)
    {
//    cin>>a>>b;
       if(a==0||b==0)break;
        vector<int>demo;
        int integer = a/b;

        a = (a%b)*10;
        while(a){
            demo.push_back(a/b);
            a = (a%b)*10;
        }
         int h = demo.size();
        printf("%d",integer);
        if(h>0)
        {
            printf(".");
            for(int i=0;i<h;i++){
                printf("%d",demo[i]);
            }
        }
        cout<<endl;
    }
    return 0;
}

https://paste.ubuntu.com/23502078/

Tag:
相关文章

发表评论: