現在、各数値の違いを単純に書き出す数値シーケンスの関数を認識するのに役立つプログラムを作成しています。
たとえば、[21, 20, 18, 15, 11] というシーケンスを指定すると、[-1 -2 -3 -4] が返されるので、シーケンスの次の数字がおそらく 6 であることがわかります。
今のところ、これは私のコードです:
ArrayList<Integer> terms = new ArrayList<Integer>();
Scanner superScanner = new Scanner(System.in);
System.out.println("Enter sequence, separate with comma");
String input = superScanner.nextLine();
String[] splitted = input.split(",");
for(String string : splitted){
int term = Integer.parseInt(string);
terms.add(term);
}
System.out.println("Terms: "+terms);
ArrayList<Integer> sequence = new ArrayList<Integer>();
System.out.println("=========DIFFERENCE=========");
for(int i = 0; i<terms.size(); i++){
//System.out.println("index "+i);
//System.out.println("size "+terms.size());
if(i == terms.size()-1){
//System.out.println("i == terms.size()");
}
else{
int currentTerm = terms.get(i);
int nextTerm = terms.get(i+1);
int difference = nextTerm-currentTerm;
System.out.print(" "+difference);
sequence.add(difference);
}
}
とてもシンプルで簡単です (私はまだ学んでいます)。しかし、コードも「力」を返すようにする方法があるのではないかと思っていました。
16, 256, 65536 を指定すると、パターン [1, 1] が返されます。2 つの整数は、第 1 項の累乗を 1 で表し、第 2 項の累乗を 1 で表します。16*16 = 256 などのように...
これを行うメソッドをどのように構築できますか? Javaに機能する機能はありますか?
前もって感謝します!