查看單個文章
舊 2018-03-08, 09:05 PM   #3 (permalink)
mini
管理版主
 
mini 的頭像
榮譽勳章
UID - 4144
在線等級: 級別:84 | 在線時長:7529小時 | 升級還需:36小時級別:84 | 在線時長:7529小時 | 升級還需:36小時級別:84 | 在線時長:7529小時 | 升級還需:36小時級別:84 | 在線時長:7529小時 | 升級還需:36小時
註冊日期: 2002-12-07
文章: 11659
精華: 0
現金: 22530 金幣
資產: 3019840 金幣
預設



過了一些時候
回頭再看一次原來
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]={1573668353755};
int 輸入[4]; //經過輸入後內容是6, 2, 5, 5, 7
int 數列差距[N-1];
int 輸入差距[4-1];

//數列差距
for (int i=0i<Ni++){
   
數列差距[i]=數列[i]-數列[i+1];
}
//輸入差距
for (int i=0i<4i++){
   
輸入差距[i]=輸入[i]-輸入[i+1];
}
//比對開始
for (int i=0i<N-4i++){
   if (
數列差距[i] == 輸入差距[0]){
      
int x=0;
      for (
int j=i+1x<=4j++){
         
x+=1;
         if (
數列差距[j] != 輸入差距[x]){
            break;
         } else if (
== 3) {cout << "相似";}
      }
   }

mini 目前離線  
送花文章: 1660, 收花文章: 7313 篇, 收花: 25651 次
回覆時引用此帖
向 mini 送花的會員:
alanniok (2018-03-09)
感謝您發表一篇好文章