管理版主
|
過了一些時候
回頭再看一次原來
6, 2, 5, 5, 7 相似 7, 3, 6, 6, 8
7, 9, 4, 6, 4 相似 6, 8, 3, 5, 3
是差距 "1"
那比對方法就是
先算出前後差距
1, 5, 7, 3, 6, 6, 8, 3, 5, 3, 7, 5, 5..... 的前後差距是
-4,-2, 4,-3, 0,-2, 5,-2, 2,-2, 0...
6, 2, 5, 5, 7的前後差距是
4,-3, 0,-2
經過 循序比對 符合前面
用C/C++就是
PHP 語法:
int 數列[N]={1, 5, 7, 3, 6, 6, 8, 3, 5, 3, 7, 5, 5};
int 輸入[4]; //經過輸入後內容是6, 2, 5, 5, 7
int 數列差距[N-1];
int 輸入差距[4-1];
//數列差距
for (int i=0; i<N; i++){
數列差距[i]=數列[i]-數列[i+1];
}
//輸入差距
for (int i=0; i<4; i++){
輸入差距[i]=輸入[i]-輸入[i+1];
}
//比對開始
for (int i=0; i<N-4; i++){
if (數列差距[i] == 輸入差距[0]){
int x=0;
for (int j=i+1; x<=4; j++){
x+=1;
if (數列差距[j] != 輸入差距[x]){
break;
} else if (x == 3) {cout << "相似";}
}
}
}
|