zoukankan      html  css  js  c++  java
  • poj 2325 Persistent Numbers

    简单的贪心和高精度运算,主要还是要读懂题。

    #include"iostream"
    #include"stdio.h"
    #include"string"
    #include"string.h"
    #include"cmath"
    #define mx 5005
    using namespace std;
    int cnt[15];
    char num[mx];
    char temp[mx];
    bool div(int mod)
    {
        int i,j,k=0,pre=0,s;
        for(i=0;num[i]!='';i++)
        {
            s=pre*10+(num[i]-'0');
            temp[k++]=(s/mod)+'0';
            pre=s%mod;
        }
        temp[k]='';//一定要给字符串加上一个结束符,这个真的是非常重要的!!!
        if(pre==0)
        {
            if(temp[0]=='0')
              strcpy(num,temp+1);
            else
                strcpy(num,temp);
            return true;
        }
        else
            return false;
    }
    int main()
    {
        int i,j,k;
        while(cin>>num,strcmp(num,"-1")!=0)
        {
            memset(cnt,0,sizeof(cnt));
            if(strlen(num)==1)
            {cout<<"1"<<num<<endl;continue;}
            for(i=9;i>=2;i--)
            {
                while(div(i)) cnt[i]++;
            }
            if(strlen(num)!=1)
                cout<<"There is no such number."<<endl;
            else
            {
                for(i=2;i<=9;i++)
                {
                    while(cnt[i])
                        {cout<<i;cnt[i]--;}
                }
                cout<<endl;
            }
        }
        return 0;
    }
    View Code
  • 相关阅读:
    服务器模型??
    tcp和udp详解??
    osi七层模型??
    高内聚 低耦合??
    进程和线程的区别和联系??
    2019.10.03题解
    2019.10.02题解
    2019.09.29考试报告
    2019.09.27考试报告
    2019.09.26考试报告
  • 原文地址:https://www.cnblogs.com/acm-jing/p/4508461.html
Copyright © 2011-2022 走看看