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

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

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

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

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

textual
Листинг программы
using System;
using System.Globalization;
using System.Numerics;
using System.Text;
using System.Security.Cryptography;
 
namespace ConsoleApp
{
    class MainClass
    {
        static BigInteger GetDecimalHash(string value, MD5 hashGenerator) {
            var sb = new StringBuilder();
            foreach (byte b in hashGenerator.ComputeHash(
                Encoding.UTF8.GetBytes(value))) {
                sb.AppendFormat("{0:x2}", b);
            }
 
            return BigInteger.Parse("0" + sb.ToString(), NumberStyles.HexNumber);
        }
 
        static int GetPoW(double a, string b) {
            int c = 0;
            BigInteger hash = 0;
            using (MD5 md5 = MD5.Create()) {
                do {
                    BigInteger inner = GetDecimalHash(b + c.ToString(), md5);
                    hash = GetDecimalHash(inner.ToString("x"), md5);
                    c++;
                } while (hash >= new BigInteger(a));
            }
            return c;
        }
 
        internal static void Main() {
            Console.WriteLine(GetPoW(Math.Pow(10.0, 36.0), "Hello"));
        }
    }
}

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


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

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

15   голосов , оценка 3.867 из 5
Похожие ответы