zoukankan      html  css  js  c++  java
  • 6174问题

    描述

    假设你有一个各位数字互不相同的四位数,把所有的数字从大到小排序后得到a,从小到大后得到b,然后用a-b替换原来这个数,并且继续操作。例如,从1234出发,依次可以得到4321-1234=3087、8730-378=8352、8532-2358=6174,又回到了它自己!现在要你写一个程序来判断一个四位数经过多少次这样的操作能出现循环,并且求出操作的次数

    比如输入1234执行顺序是1234->3087->8352->6174->6174,输出是4

     
    输入
    第一行输入n,代表有n组测试数据。
    接下来n行每行都写一个各位数字互不相同的四位数
    输出
    经过多少次上面描述的操作才能出现循环
    样例输入
    1
    1234
    样例输出
    4

     1 import java.util.Arrays;
     2 import java.util.Scanner;
     3 
     4 public class Main {
     5     public static void main(String[] args) {
     6         Scanner scanner=new Scanner(System.in);
     7         int T;
     8         int i;
     9         String string;
    10         char stringChar[]=new char[4];
    11         String compare;
    12         char compareChar[]=new char[4];
    13         int a;
    14         int b;
    15         int temp;
    16         int count;
    17         
    18         T=scanner.nextInt();
    19         for(i=0;i<T;i++){
    20             string=scanner.next();
    21             count=0;
    22             
    23             while(true){
    24                 stringChar=string.toCharArray();
    25                 Arrays.sort(stringChar);
    26                 a=stringChar[0]+stringChar[1]*10+stringChar[2]*100+stringChar[3]*1000;
    27                 b=stringChar[0]*1000+stringChar[1]*100+stringChar[2]*10+stringChar[3];
    28                 
    29                 temp=a-b;
    30                 
    31                 compareChar[0]=(char)(temp/1000+'0');
    32                 compareChar[1]=(char)(temp/100%10+'0');
    33                 compareChar[2]=(char)(temp/10%10+'0');
    34                 compareChar[3]=(char)(temp%10+'0');
    35                 
    36                 compare=new String(compareChar);
    37                 
    38                 if(compare.compareTo(string)==0)
    39                     break;
    40                 
    41                 else{
    42                     count++;
    43                     string=compare;
    44                 }
    45             }
    46             System.out.println(count+1);
    47         }
    48     }    
    49 }
    
    
    
     
  • 相关阅读:
    消息摘要技术(MD5)
    编写JsonResult封装JSON返回值(模板参阅)
    JS面向对象编程(进阶理解)
    markdown常用语法教程
    Spring-MVC请求参数值和向页面传值
    Spring-MVC开发步骤(入门配置)
    Live Templates快捷键模板
    压力测试中java.net.BindException: Address already in use: connect
    jmeter初始化工作
    xshell配色
  • 原文地址:https://www.cnblogs.com/zqxLonely/p/4130665.html
Copyright © 2011-2022 走看看