⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 1230 火星a+b.cpp

📁 威士忌的HDU题解.大概有260多题的源码。对于学习非常有好处。
💻 CPP
字号:
/*
1230 火星A+B
Time Limit : 1000 ms  Memory Limit : 32768 K  Output Limit : 256 K

GUN C++
*/
#include <iostream>
#include <string>
using namespace std;

const int Max=25;

int prime[Max]={2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97};

int toNum(char *c,int n[])
{
    int i,all,temp,dig;

    i=0;all=0;temp=0;dig=1;
    while(c[i]!='\0')
        i++;
    while(i--)
        if(c[i]!=',')
        {
            temp+=(c[i]-'0')*dig;
            dig*=10;
        }
        else
        {
            n[all]=temp;
            all++;
            temp=0;dig=1;
        }
    n[all]=temp;
    all++;
    return all;
}

int main()
{
    int n,i,temp;
    char a[200],b[200];
    int num1[Max],len1,num2[Max],len2,ans[Max],len;

    while(cin>>a>>b && (a[0]!='0' && b[0]!='0'))
    {
        for(i=0;i<Max;i++)
            num1[i]=num2[i]=ans[i]=0;
            
        len1=toNum(a,num1);
        len2=toNum(b,num2);
        len=0;
        for(i=0;i<Max;i++)
        {
            ans[i]+=num1[i]+num2[i];
            if(ans[i]>=prime[i])
            {   temp=ans[i];ans[i]%=prime[i];ans[i+1]=(temp-ans[i])/prime[i];}
            if(ans[i]>0)
                len=i;
        }

        for(i=len;i>=0;i--)
        {
            if(i!=len)
                cout<<',';
            cout<<ans[i]<<flush;
        }
        cout<<endl;
    }
    return 0;
}


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -