Переделай пожалуйста из VB в c#: function CheckPFNumber(const Value:String):Boolean; var I,Summa:Integer; begin Result:=False; if Length(Value)<>11 then exit; for I:=1 to 11 do if not (Value[I] in ['0'..'9']) then exit; Summa:=0; for I:=1 to 9 do Inc(Summa,StrToInt(Value[I])*(10-I)); // вычисляем контрольную сумму Result:=StrToInt(Copy(Value,10,2))=(Summa mod 101); // проверяем остаток от деления контрольной суммы на 101 с двумя последними числам end;
Jan 16, 7:37am
Конечно! Вот эквивалентный код на C#:
csharp
using System;
public class Program
{
public static bool CheckPFNumber(string value)
{
if (value.Length != 11)
{
return false;
}
foreach (char c in value)
{
if (c < '0' || c > '9')
{
return false;
}
}
int summa = 0;
for (int i = 0; i < 9; i++)
{
summa += (value[i] - '0') * (10 - (i + 1)); // вычисляем контрольную сумму
}
int controlSum = int.Parse(value.Substring(9, 2));
return controlSum == (summa % 101); // проверяем остаток от деления контрольной суммы на 101 с двумя последними числами
}
public static void Main()
{
string testValue = "12345678901";
bool result = CheckPFNumber(testValue);
Console.WriteLine(result); // Вывод результата проверки
}
}
Этот код выполняет ту же задачу, что и ваш исходный код на VB: проверяет, является ли строка корректным номером ПФ (Пенсионного Фонда) на основе контрольной суммы.
Jan 16, 7:37am
This is a shared conversation and may include unverified content that doesn't reflect Mistral AI's views. Login to resume chatting.