首先说下 65 | f( x ) 的意思是 f( x ) 能被65整除
由公式可以推出:
f(x+1) = f(x) + 18 + k * a + m * (18 + k * a );
其中m是一个对整个求解没有影响的整数。
又 f(1) = 18 + k * a ;
所以只需满足 18 + k * a 是65的整数倍....
然后 a直接枚举从1到65就行。(超过65就循环了。。。。)
所以就A了。。。。。那个递推关系式用二项式定理很容易推啦
AC代码如下:
#include <iostream>
#include <cstdio>
using namespace std;
int main(){
int k, ans;
while( scanf( "%d", &k ) != EOF ){
ans = 0;
for( int i = 1; i <= 65; i++ ){
if( ( 18 + k * i ) % 65 == 0 ){
ans = i;
break;
}
}
if( ans != 0 ){
cout << ans << endl;
}else{
cout << "no" << endl;
}
}
return 0;
}