• 【PAT甲级】1023 Have Fun with Numbers (20 分)


    题意:

    输入一个不超过20位的正整数,问乘2以后是否和之前的数组排列相同(数字种类和出现的个数不变),输出Yes或No,并输出乘2后的数字。

    AAAAAccepted code:

     1 #define HAVE_STRUCT_TIMESPEC
     2 #include<bits/stdc++.h>
     3 using namespace std;
     4 int vis[17];
     5 string s;
     6 int ans[57];
     7 int main(){
     8     cin>>s;
     9     int len=s.size();
    10     for(int i=len-1;i>=0;--i)
    11         ++vis[s[i]-'0'];
    12     int cnt=0;
    13     int x=0;
    14     for(int i=len-1;i>=0;--i){
    15         x=(s[i]-'0')*2;
    16         if(ans[cnt+1]+x%10>9){
    17             ans[++cnt]+=x%10-10;
    18             ++ans[cnt+1];
    19         }
    20         else{
    21             ans[++cnt]+=x%10;
    22             if(x>9)
    23                 ++ans[cnt+1];
    24         }
    25     }
    26     for(int j=50;j;--j)
    27         if(ans[j]){
    28             cnt=j;
    29             break;
    30         }
    31     for(int i=1;i<=cnt;++i)
    32         --vis[ans[i]];
    33     int flag=0;
    34     for(int i=0;i<10;++i)
    35         if(vis[i])
    36             flag=1;
    37     if(flag)
    38         cout<<"No
    ";
    39     else
    40         cout<<"Yes
    ";
    41     for(int i=cnt;i;--i)
    42         cout<<ans[i];
    43     return 0;
    44 }
    保持热爱 不懈努力 不试试看怎么知道会失败呢(划掉) 世上无难事 只要肯放弃(划掉)
  • 相关阅读:
    多校省选模拟33 C
    省选测试47 T2宝石(P5401 [CTS2019]珍珠) 题解
    省选测试39
    省选测试38
    省选测试37
    自嗨测试赛4
    自嗨测试赛3
    自嗨测试赛2
    自嗨测试赛1
    树状数组 学习笔记
  • 原文地址:https://www.cnblogs.com/ldudxy/p/11439577.html
Copyright © 2020-2023  润新知