私は初心者プログラマーで、Codility フロッグ ジャンプの質問を試しています。これが私のコードソリューションです:
int solution(int, int, int, unsigned long int&);
int main(){
unsigned long int stepsTaken = 1;
int x = 10;
int y = 85;
int d = 30;
solution(x, y, d, stepsTaken);
cout << "Total Steps Taken: " << stepsTaken << endl;
}
int solution( int X, int Y, int D, unsigned long int &stepsTaken) {
int currentPosition = X;
int positionToGetTo = Y;
int stepsJumpedEachTime = D;
currentPosition += stepsJumpedEachTime;
if(currentPosition < positionToGetTo){
stepsTaken++;
solution(currentPosition, positionToGetTo, stepsJumpedEachTime, stepsTaken);
}
return stepsTaken;
}
今私が抱えている問題は、1 から 1000000000 までの数値範囲を処理するための要件を満たそうとするときです。上記の int y を 2000000 に変更すると、負の値が返されます。unsigned long int は正の数を返す必要がありますが、2000000 を使用すると負の値が返されます。