zoukankan      html  css  js  c++  java
  • 00-自测4. 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 file 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 import java.io.BufferedReader;
     2 import java.io.IOException;
     3 import java.io.InputStreamReader;
     4 
     5 public class number
     6 {
     7     public static void main(String[] args) throws IOException
     8     {
     9         BufferedReader buf=new BufferedReader(new InputStreamReader(System.in));
    10         String line=buf.readLine();
    11         char[] sou=line.toCharArray();
    12         char[] dou;
    13         boolean b=false;
    14         if(sou[0]-'0'>=5)
    15         {
    16             b=false;
    17             dou=new char[sou.length+1];
    18             dou[0]='1';
    19             for(int i=sou.length-1,jin=0;i>=0;i--)
    20             {
    21                 dou[i+1]=(char) (((sou[i]-'0')*2)%10+'0'+jin);
    22                 if((sou[i]-'0')*2+jin>=10)
    23                     jin=1;
    24                 else
    25                     jin=0;
    26                 
    27             }
    28         }
    29         else
    30         {
    31             dou=new char[sou.length];
    32             for(int i=sou.length-1,jin=0;i>=0;i--)
    33             {
    34                 
    35                 dou[i]=(char) (((sou[i]-'0')*2)%10+'0'+jin);
    36                 if((sou[i]-'0')*2+jin>=10)
    37                     jin=1;
    38                 else
    39                     jin=0;
    40                 
    41             }
    42             
    43             int[] t1=new int[10];
    44             for(int i=0;i<sou.length;i++)
    45             {
    46                 t1[sou[i]-'0']++;
    47             }
    48             int[] t2=new int[10];
    49             for(int i=0;i<dou.length;i++)
    50             {
    51                 t2[dou[i]-'0']++;
    52             }
    53             for(int i=0;i<t1.length;i++)
    54             {
    55                 if(t1[i]!=t2[i])
    56                 {
    57                     b=false;
    58                     break;
    59                 }
    60                 b=true;
    61             }
    62         }
    63 
    64         if(b==true)
    65         {
    66             System.out.println("Yes");
    67             System.out.println(dou);
    68         }
    69         else
    70         {
    71             System.out.println("No");
    72             System.out.println(dou);
    73         }
    74             
    75         
    76     }
    77 }
  • 相关阅读:
    centos7下安装erlang
    centos7下升级git版本
    pytest失败重跑插件: pytest-rerunfailures使用与坑(全网独家精华)
    pytest-assume插件(全网最详细解释):多重断言执行
    pytest踩坑记:NameError: name 'pytest' is not defined
    pytest-ordering:指定pytest的case运行顺序的插件
    pytest中print的坑
    pytest测试入门篇(ExitCode退出码)
    httprunner3.x遇到的问题(hrun make报错)
    httprunner3.x(入门介绍篇)
  • 原文地址:https://www.cnblogs.com/qq1029579233/p/4398580.html
Copyright © 2011-2022 走看看