我目前正在编写一个程序,该程序可以帮助我识别数字序列中的函数,它只是写出每个数字之间的差异。
就像我给它序列 [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]。这两个整数将表示第一项乘以 1,第二项乘以 1,等等。您知道,如 16*16 = 256 等...
我怎么能构造一个方法来做到这一点?java中是否有任何power-to功能?
提前致谢!