我试图以两种方式反转数组:
1)通过创建一个非常简单的新数组:
public static int[] reverse(int[] array) {
int[] reverseArray = new int[array.length];
for(int i = 0; i < reverseArray.length; i++) {
reverseArray[i] = array[array.length - i - 1];
}
return reverseArray;
}
Run Code Online (Sandbox Code Playgroud)
2)第二种方法我得到了答案,但实际上我并不理解它,它实际上利用交换,将数组的值赋予临时变量然后更改它并将其返回到原始变量:
public static int[] reverse2(int[] array)
{
for (int i=0; i < array.length / 2; i++)
{
int temp = array[i];
array[i] = array[array.length - i - 1];
array[array.length - i - 1] = temp;
}
return array;
}
Run Code Online (Sandbox Code Playgroud)
有人可以向我解释第二个代码吗?我不明白除2?如果数组大小是偶数还是奇数,会发生什么?
import java.util.Scanner;
public class Test{
public static int[] calculateFactors(int n){
int[] array = new int[n];
for(int i = 0; i<=n;i++){
if(n%i==0){
return array[i];
}
}
}
public static void main(String[] args){
System.out.println("Please enter the number you want to find the factors for:");
Scanner input = new Scanner(System.in);
int n = input.nextInt();
System.out.println(calculateFactors(n));
}
}
Run Code Online (Sandbox Code Playgroud)
我不明白为什么我会收到错误.我正在尝试编写用户输入数字的代码,程序将返回此数字的所有因子.任何人都可以告诉我为什么当我无法使用相应的i因子返回数组时.
谢谢
我正在解决一个面试问题,即编写一个方法,在不使用+运算符的情况下添加两位数.
我非常了解算法,我可以在C中轻松完成.
这是算法,它完美地运作:
int add(int x, int y) {
int a, b;
do {
a = x & y;
b = x ^ y;
x = a << 1;
y = b;
} while (a);
return b;
}
Run Code Online (Sandbox Code Playgroud)
我尝试将此代码转换为Java,但是这个算法的功能是因为a将在一个点上变为000,在C中将在while循环中等于False.Java中的替代方案是什么?
谢谢.
#!/bin/bash
echo "Enter number of loops"
read count
echo $count
if [ $count -eq 0 ]
then
echo "The count cannot be zero. Enter a number again"
read count
fi
while [ $count -gt 0 ]
do
echo "Loop numner $count"
count = `expr $count - 1`
done
Run Code Online (Sandbox Code Playgroud)
我试图在bash中模拟Java计数器.这存在吗?
我是一名新的C开发人员.我已经用Java编程了3年了.我注意到我必须用C做手动内存分配.
但是,当涉及到指针和内存分配时,我仍然不明确.我会说出我理解的内容,如果有人对我要说的话有任何评论,请指正.
所以我要说:
int *a;
Run Code Online (Sandbox Code Playgroud)
所以这样做会创建一个名为a的指针,指向一个整数值.
int *a = address;
Run Code Online (Sandbox Code Playgroud)
如果我打印地址,我会得到地址.
假设我想要价值,我做我们所谓的解除引用和
int *a = *value;
Run Code Online (Sandbox Code Playgroud)
如果我在这种情况下打印值,我会得到存储在内存中的实际数字.
我注意到在我使用的电子书中,有时候,我们在堆中分配内存.总是这样吗?每次我需要使用一个字符串的指针,例如使用char*,我必须使用alloc()和sizeof()分别根据预期类型的大小分配内存?
当我准备接受有关OOP的采访时,我遇到了这个问题.
继承形式B. B继承自C.将初始化C的一个invoke构造函数?
我所知道的是构造不是继承的.我们必须使用super关键字来引用父的构造函数.我对吗?