1023. Have Fun with Numbers (20)

来源:互联网 发布:淘宝买家秀大尺度下载 编辑:程序博客网 时间:2024/06/02 06:14

问给你的数的两倍的那个数是否由原来的数的各位重新排列组成。
大概是道大数题吧。。
反正挺简单的。。

#include <cstdio>#include <vector>#include <string>#include <cstring>#include <cstdlib>#include <iostream>#include <algorithm>#define INF 0x3fffffffusing namespace std;int main(){    int m[10],n[10];    memset(m,0,sizeof(m));    memset(n,0,sizeof(n));    string a,b;    int len;    cin>>a;    len=a.size();    if (a[0]-'5'>=0)    {        for (int i=0;i<=len;i++)            b[i]='0';        for (int i=len-1;i>=0;i--)        {            b[i+1]=b[i+1]+(a[i]-'0')*2;            while(b[i+1]-'0'>=10)            {                b[i+1]=b[i+1]-10;                b[i]++;            }        }        cout<<"No"<<endl;        for (int i=0;i<=len;i++)            cout<<b[i];    }    else    {        for (int i=0;i<len;i++)            m[a[i]-'0']++;        for (int i=0;i<len;i++)            b[i]='0';        for (int i=len-1;i>=0;i--)        {            b[i]=b[i]+(a[i]-'0')*2;            while(b[i]-'0'>=10)            {                b[i]=b[i]-10;                b[i-1]++;            }        }        for (int i=0;i<len;i++)            n[b[i]-'0']++;        int i;        for (i=0;i<=9;i++)            if (m[i]!=n[i])            {                cout<<"No"<<endl;                for (int i=0;i<len;i++)                cout<<b[i];                break;            }        if (i==10)        {            cout<<"Yes"<<endl;            for (int i=0;i<len;i++)                cout<<b[i];        }    }}
原创粉丝点击