.NET 4.x Переписать код с JS на C#

Узнай цену своей работы

Формулировка задачи:

Есть такой код на JavaScript
Листинг программы
  1. function getPoW(a, b) {
  2. var c = 0;
  3. do
  4. hash = eval("(0x" + md5(md5(b + c)) + ")"),
  5. ++c;
  6. while (hash >= a);return c
  7. }
a - double b - string Как его переписать на шарпе?

Решение задачи: «.NET 4.x Переписать код с JS на C#»

textual
Листинг программы
  1. using System;
  2. using System.Globalization;
  3. using System.Numerics;
  4. using System.Text;
  5. using System.Security.Cryptography;
  6.  
  7. namespace ConsoleApp
  8. {
  9.     class MainClass
  10.     {
  11.         static BigInteger GetDecimalHash(string value, MD5 hashGenerator) {
  12.             var sb = new StringBuilder();
  13.             foreach (byte b in hashGenerator.ComputeHash(
  14.                 Encoding.UTF8.GetBytes(value))) {
  15.                 sb.AppendFormat("{0:x2}", b);
  16.             }
  17.  
  18.             return BigInteger.Parse("0" + sb.ToString(), NumberStyles.HexNumber);
  19.         }
  20.  
  21.         static int GetPoW(double a, string b) {
  22.             int c = 0;
  23.             BigInteger hash = 0;
  24.             using (MD5 md5 = MD5.Create()) {
  25.                 do {
  26.                     BigInteger inner = GetDecimalHash(b + c.ToString(), md5);
  27.                     hash = GetDecimalHash(inner.ToString("x"), md5);
  28.                     c++;
  29.                 } while (hash >= new BigInteger(a));
  30.             }
  31.             return c;
  32.         }
  33.  
  34.         internal static void Main() {
  35.             Console.WriteLine(GetPoW(Math.Pow(10.0, 36.0), "Hello"));
  36.         }
  37.     }
  38. }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

15   голосов , оценка 3.867 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы