PTA内存超限 求大家指导一下

import java.util.Scanner;

public class Main {
    public static String change(int n){
        String binary = "";
        if(n < 0)
            throw new IllegalArgumentException();       
        if(n==0) {

        }           
        if(n <= 1){
            binary = binary + String.valueOf(n);
            return binary;
        }
        else{
            binary = change(n/2);
            binary = binary + String.valueOf(n % 2);
        }
        return binary;
    }   
    public static int output(String str) {
        String[] temp=new String[2];
        temp=str.split(" ");
        int num1;
        int num2;
        num1=Integer.parseInt(temp[0]);
        num2=Integer.parseInt(temp[1]);
        int difference=num2-num1+1;
        int[] nums=new int[difference];
        for(int i=0;i<difference;i++) {
            nums[i]=num1++;
        }
        String[] nums2=new String[difference];
        for(int i=0;i<difference;i++) {
            nums2[i]=change(nums[i]);
            nums[i]=0;//
        }

        int length=nums2[difference-1].length();

        for(int i=0;i<difference;i++) {
            if(nums2[i].length()!=length) {
                nums2[i]=flushLeft(length,nums2[i]);

            }
        }

        int sum=0;
        for(int i=0;i<difference-1;i++) {
            String temp1=nums2[i];
            String temp2=nums2[i+1];
            for(int p=0;p<length;p++) {
                if(temp1.charAt(p)!=temp2.charAt(p)) {
                    sum++;
                }   
            }
            nums2[i]=null;//
        }
        return sum;
    }

     public static String flushLeft(long length, String content){             
           String str = "";     
           long cl = 0;    
           String cs = "";     
           if (content.length() > length){     
                str = content;     
           }else{    
                for (int i = 0; i < length - content.length(); i++){     
                    cs = cs+"0"  ;     
                }  
              }  
            str =  cs+content ;      
            return str;      
       } 

    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        int input = scan.nextInt();  //输入用例数量
        scan.nextLine();
        int num[]=new int[input];
        for(int i=0;i<input;i++) {
            String str=scan.nextLine();
            num[i]=output(str);
        }
        for(int i=0;i<input;i++) {
            System.out.println(num[i]);
        }
    }
}

https://blog.csdn.net/Nicole_177/article/details/90632291

我来帮你,用c