首页 > 其他 > 详细

Volume 1. Big Number(uva)

时间:2014-04-20 11:02:48      阅读:492      评论:0      收藏:0      [点我收藏+]

如用到bign类参见大整数加减乘除模板

424 - Integer Inquiry

bubuko.com,布布扣
#include <iostream>
#include <string>
#include <cstring>
#include <cstdio>
#include <cstdlib>
#define N 10050
using namespace std;
string s;
int ans[N];
int main()
{
    int i, j;
    while (cin>>s, s[0] != 0)
    {
        for (i = s.length() - 1, j = 0; i >= 0; i--, j++)
            ans[j] += (s[i] - 0);
    }
    for (i = 0; i < N - 1; i++)
    {
        ans[i + 1] += ans[i] / 10;
        ans[i] %= 10;
    }
    i = N - 1;
    while (!ans[i] && i > 0)
        i--;
    while (i >= 0)
        cout<<ans[i--];
    cout<<endl;
    return 0;
}
View Code

10106 - Product

bubuko.com,布布扣
#include <iostream>
#include <string>
#include <cstring>
#include <algorithm>
#include <cstdio>
#include <cstdlib>
#define N 550
using namespace std;
int ans[N];
string s1, s2;

int main()
{
    int i, j, ls1, ls2, len;//tmp表示进位
    while (cin>>s1>>s2)
    {
        ls1 = s1.length() - 1;
        ls2 = s2.length() - 1;
        len = ls1 + ls2;
        memset(ans, 0, sizeof(ans));
        for (i = ls1; i >= 0; i--)
            for (j = ls2; j >= 0; j--)
            {
                ans[len - (i + j)] += (s1[i] - 0) * (s2[j] - 0);
            }
        len++;
         for (i = 0; i < len; i++)
         {
             ans[i + 1] += ans[i] / 10;
             ans[i] = ans[i] % 10;
         }
         while (!ans[len] && len > 0)//去除前导0
            len--;
         for (; len >= 0; len--)
            cout<<ans[len];
         cout<<endl;
    }
    return 0;
}
View Code

465 - Overflow

bubuko.com,布布扣
int main()
{
    //ifstream cin("test.in");
    bign a, b, c;
    char ch;
    bign d = INT_MAX;
    string sa, sb;
    while (cin>>sa>>ch>>sb)
    {

        cout<<sa<< <<ch<< <<sb<<endl;
        a = sa;
        b = sb;
        if (d < a)
            cout<<"first number too big"<<endl;
        if (d < b)
            cout<<"second number too big"<<endl;
        if (ch == +)
            c = a + b;
        else
            c = a * b;
        cout<<c<<endl;
        if (d < c)
            cout<<"result too big"<<endl;
    }
    return 0;
}
View Code

748 - Exponentiation

bubuko.com,布布扣
int main()
{
    string sa, sb;
    bign a, b;
    int p, n, i;
    while (cin>>sa>>n)
    {
        p = 0;
        while (sa[p] != .)
            p++;
        sa.erase(sa.begin() + p);
        a = sa;
        b = a ^ n;
        sb = b.to_str();
        p = (5 - p) * n;
        for (i = b.length(); i < p; i++)
            sb += 0;
        sb.insert(sb.begin() + p, .);
        p = 0;
        while (sb[p] == 0)
            p++;
        for (i = sb.length() - 1; i >= p; i--)
            cout<<sb[i];
        cout<<endl;
    }
    return 0;
}
View Code

10494 - If We Were a Child Again

bubuko.com,布布扣
int main()
{
    //string sa, sb;
    bign a, b, c;
    char ch;
    while (cin>>a>>ch>>b)
    {
        if (ch == /)
            c = a / b;
        else
            c = a % b;
        cout<<c<<endl;
    }
    return 0;
}
View Code

 

Volume 1. Big Number(uva),布布扣,bubuko.com

Volume 1. Big Number(uva)

原文:http://www.cnblogs.com/jecyhw/p/3675483.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!