【问题标题】:Reversing an array without using another array在不使用另一个数组的情况下反转数组
【发布时间】:2021-08-11 16:16:39
【问题描述】:

我一直在尝试使用两个数组,它是成功的,但是就地反转对我来说有点混乱。如果你能帮忙,那就太好了 公共类 reverseOfAnArray {

int[] reverseCal(int arr[]){
int i,j=0;
for (i=arr.length;i>0;i--,j++){
arr[j]=arr[i-1];
}
return arr;
}
public static void main(String[] args) {
Scanner scan=new Scanner(System.in);
int size,i=0;
System.out.println("enter the size of your array");
size=scan.nextInt();

int originalArray[]=new int[size];
System.out.println("Enter the elemets in the array");
for (i=0;i<size;i++){
originalArray[i]=scan.nextInt();
}
reverseOfAnArray cal=new reverseOfAnArray();
System.out.println("reverse of the given array is 
\n"+Arrays.toString(cal.reverseCal(originalArray)));
}
}

【问题讨论】:

    标签: java perfect-numbers


    【解决方案1】:

    你的问题是当你找到第一个不是a的除数的数字时你正在停止递归,所以在28的情况下,你在comingdivisor达到3时完成递归,并且错过了大多数28 的除数(4、7 和 14)。

    即使a % comingdivisor != 0进行递归调用:

    class perfectNumber {
      int sum=0;
      Integer perfectNumberCal(int a,int comingdivisor) {
        if (comingdivisor<=a/2) {
          if (a % comingdivisor == 0) {
            sum += comingdivisor;
            System.out.println(sum);
          }
          return perfectNumberCal(a,comingdivisor+1);
        }
        return sum;
      }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-10-14
      • 1970-01-01
      • 2015-07-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-04-27
      相关资源
      最近更新 更多