zoukankan      html  css  js  c++  java
  • 1023 Have Fun with Numbers (20 分)

    1023 Have Fun with Numbers (20 分)
     

    Notice that the number 123456789 is a 9-digit number consisting exactly the numbers from 1 to 9, with no duplication. Double it we will obtain 246913578, which happens to be another 9-digit number consisting exactly the numbers from 1 to 9, only in a different permutation. Check to see the result if we double it again!

    Now you are suppose to check if there are more numbers with this property. That is, double a given number with k digits, you are to tell if the resulting number consists of only a permutation of the digits in the original number.

    Input Specification:

    Each input contains one test case. Each case contains one positive integer with no more than 20 digits.

    Output Specification:

    For each test case, first print in a line "Yes" if doubling the input number gives a number that consists of only a permutation of the digits in the original number, or "No" if not. Then in the next line, print the doubled number.

    Sample Input:

    1234567899
    

    Sample Output:

    Yes
    2469135798

     1 #include<iostream>
     2 #include<vector>
     3 #include<queue>
     4 #include<stack>
     5 #include<algorithm>
     6 #include<string>
     7 using namespace std;
     8 int Array[10];
     9 int main()
    10 {
    11     string num;
    12     cin >> num;
    13     int len = num.size();
    14     int flag = 0;
    15     int temp = 0;
    16     for (int i = len - 1; i >= 0; i--)
    17     {
    18         Array[num[i] - '0']++;
    19         temp = (num[i] - '0') * 2 + flag;
    20         flag = 0;
    21         if (temp> 9)
    22         {
    23             temp %= 10;
    24             flag = 1;
    25         }
    26         Array[temp]--;
    27         num[i] = '0' + temp;
    28     }
    29     int flag1 = 0;
    30     for(int i=0;i<10;i++)
    31         if (Array[i]!=0)
    32         {
    33             flag1= 1;
    34             break;
    35         }
    36     if (flag1)
    37     {
    38         cout << "No" << endl;
    39         if (flag)
    40             cout << "1" << num;
    41         else
    42             cout << num;
    43     }
    44     else
    45     {
    46         cout << "Yes" << endl;
    47         if (flag)
    48             cout << "1" << num;
    49         else
    50             cout << num;
    51     }
    52 
    53 }
    View Code
  • 相关阅读:
    【机器学习】关联规则挖掘(二):频繁模式树FP-growth
    【机器学习】关联规则分析(一):Apriori
    【机器学习】聚类算法——K均值算法(k-means)
    【机器学习】分类器组合——AdaBoost
    tensorflow 中 Cross Entropy算法理解
    修改文件夹中的文件名
    poj 2635
    噪音样本
    流量录制回放助力接口自动化测试
    git
  • 原文地址:https://www.cnblogs.com/57one/p/11937469.html
Copyright © 2011-2022 走看看