2016-08-05 5 views
0

にJavaScript関数の変換数である零:私はこのウェブサイトからJavaへのJavaScriptからこのコードを変更する必要があり

// In 1 of 51 games the game crashes instantly. 
if (divisible(hash, 51)) 
    return 0; 

( "ハッシュ" は、64ビットの16進数である)、この関数である:(modは常に51である)

function divisible(hash, mod) { 
// So ABCDEFGHIJ should be chunked like AB CDEF GHIJ 
var val = 0; 

var o = hash.length % 4; 
for (var i = o > 0 ? o - 4 : 0; i < hash.length; i += 4) { 
    val = ((val << 16) + parseInt(hash.substring(i, i+4), 16)) % mod; 
} 

return val === 0; 
} 

JavaScriptのバージョンが特定のハッシュに対してゼロを返すときは、まったく同じハッシュにゼロを返すようにJavaバージョンが必要です。

これは私の最初の試みであり、私のJavaScriptの知識が乏しいために得られるものです。

public static double divisible(String hash, int mod) 
{ 
    int val = 0;   
    int o = hash.length() % 4;  
    int i = 0; 

    if(o > 0) {i = o - 4;} 
    if(o < 0) {i = 0;} 

    for (int a = i; a < hash.length(); a += 4) 
    {   
     val = ((val << 16) + Integer.parseInt(hash.substring(i, i+4), 16)) % mod;    
    } 
    return val; 
} 
+3

スタックオーバーフローは、コード翻訳サービスではなく、質問と回答のサイトです。最初にコードを翻訳してみてください。つまった時に私達に来てください。あなたが試したことを見せてください(// stackoverflow.com/help/mcve)。 – FrankerZ

+1

私は可能な限り私の試みを示した。そして詰まっています – Joey

答えて

1

Javaコード内の変数をちょうど混乱させているように見えますが、それ以外の場合は問題ありません。サブで

public static double divisible(String hash, int mod) 
{ 
    int val = 0;   
    int o = hash.length() % 4;  
    int i = 0; 

    if(o > 0) {i = o - 4;} 
    if(o < 0) {i = 0;} 

    for (int a = i; a < hash.length(); a += 4) 
    {   
     val = ((val << 16) + Integer.parseInt(hash.substring(a, a+4), 16)) % mod;    
    } 
    return val; 
} 

値がないでなければなりません。 おそらくi = indexと仮定します。

改良点は次のとおりです。 Java forループで新しい変数を作成する必要はありません。

public static double divisible(String hash, int mod) 
{ 
    int val = 0;   
    int o = hash.length() % 4;  
    int i = 0; 

    if(o > 0) {i = o - 4;} 
    if(o < 0) {i = 0;} 

    for (; i < hash.length(); i += 4) 
    {   
     val = ((val << 16) + Integer.parseInt(hash.substring(i, i+4), 16)) % mod;    
    } 
    return val; 
} 
+0

أحسنتياسمير..تعجبني –

+0

@AbdennourTOUMIありがとう、はいそれは風のようです:) –

+1

ありがとうございました!何時間も苦労しました。本当に助けを感謝し、私の貧しい人々のコードを通過する時間を取るために。 – Joey

関連する問題