zoukankan      html  css  js  c++  java
  • Java自学第四十五天

      今天做pta上面的题。

      

       代码如下

      

    import java.util.Scanner;
    public class Main{
    public static void main(String[] args){
    Scanner cn=new Scanner(System.in);
    int a=cn.nextInt();
    int sum=0;
    if(zeng(a)!="0")
    { while(sum!=6174){
    sum=huan(zeng(a))-huan(jian(a));
    System.out.print(zeng(a)+" "+"-"+" "+jian(a)+" "+"= "+sumhuan(sum));
    if(sum!=6174){
    System.out.println();
    a=sum;
    }
    }
    }
    else if(zeng(a)=="0") {
    System.out.print(xt(a)+" "+"-"+" "+xt(a)+" "+"="+" 0000");
    }
    }
    static String zeng(int a){
    int[] arr=new int[4];
    arr[0]=a/1000;
    arr[1]=(a-arr[0]*1000)/100;
    arr[2]=(a-arr[0]*1000-arr[1]*100)/10;
    arr[3]=(a-arr[0]*1000-arr[1]*100-arr[2]*10);
    for(int i=0;i<3;i++){
    for(int j=i+1;j<4;j++){
    if(arr[j]>arr[i]){
    int t=0;
    t=arr[j];
    arr[j]=arr[i];
    arr[i]=t;
    }
    }
    }
    if((arr[0]==arr[1]&&arr[0]==arr[2]&&arr[0]==arr[3]))return "0";
    else {

    char[] c=new char[4];
    for(int i=0;i<4;i++){
    c[i]=(char)(arr[i]+48);
    }
    return new String(c,0,4);
    }
    }


    static String jian(int a){
    int[] arr=new int[4];
    arr[0]=a/1000;
    arr[1]=(a-arr[0]*1000)/100;
    arr[2]=(a-arr[0]*1000-arr[1]*100)/10;
    arr[3]=(a-arr[0]*1000-arr[1]*100-arr[2]*10);
    for(int i=0;i<3;i++){
    for(int j=i+1;j<4;j++){
    if(arr[j]<arr[i]){
    int t=0;
    t=arr[j];
    arr[j]=arr[i];
    arr[i]=t;
    }
    }
    }
    if((arr[0]==arr[1]&&arr[0]==arr[2]&&arr[0]==arr[3]))return "0";
    else {

    char[] c=new char[4];
    for(int i=0;i<4;i++){
    c[i]=(char)(arr[i]+48);
    }
    return new String(c,0,4);
    }
    }


    static int huan(String s) {
    char[] c=s.toCharArray();
    int[] a=new int[s.length()];
    for(int i=0;i<4;i++) {
    a[i]=(int)c[i]-48;
    }
    return a[0]*1000+a[1]*100+a[2]*10+a[3];
    }
    static String xt(int a) {
    char[] c=new char[4];
    for(int i=0;i<4;i++) {
    c[i]=(char)(a/1000+48);
    }
    return new String(c,0,4);
    }
    static String sumhuan(int a) {
    int[] arr=new int[4];
    arr[0]=a/1000;
    arr[1]=(a-arr[0]*1000)/100;
    arr[2]=(a-arr[0]*1000-arr[1]*100)/10;
    arr[3]=(a-arr[0]*1000-arr[1]*100-arr[2]*10);
    char[] c=new char[4];
    for(int i=0;i<4;i++){
    c[i]=(char)(arr[i]+48);
    }
    return new String(c,0,4);
    }
    }

      这道题目我感觉我的方法不是很好,因为用了100多行才实现,我设计了几个函数用来int和String类型之间相互转换,而且这道题的格式要求很严格所以多设计了两个函数,原来只有两个函数,总体来说就是要细心。

      明天继续寻找题目。

  • 相关阅读:
    一手遮天 Android
    一手遮天 Android
    一手遮天 Android
    一手遮天 Android
    一手遮天 Android
    一手遮天 Android
    一手遮天 Android
    一手遮天 Android
    一手遮天 Android
    一手遮天 Android
  • 原文地址:https://www.cnblogs.com/ruangongwangxiansheng/p/13585904.html
Copyright © 2011-2022 走看看