Подскажите плиз как уменьшить большое число на 1

  • Автор темы Автор темы Alexde
  • Дата начала Дата начала
C#:
Развернуть Свернуть Копировать
string source = "1654172703390231363193871214409827255040536632558212919751502330593116592777";

if (source.Length > 1)
{
    string str = source.Substring(source.Length - 2, 2);
    
    if (int.TryParse(str, out int num)) {
        num++;
        return source.Substring(0, source.Length - 2) + num.ToString();
    }
}
 
  • Оценить
Реакции: Sergodjan и Astraport
C#:
Развернуть Свернуть Копировать
string source = "1654172703390231363193871214409827255040536632558212919751502330593116592777";

if (source.Length > 1)
{
    string str = source.Substring(source.Length - 2, 2);
  
    if (int.TryParse(str, out int num)) {
        num++;
        return source.Substring(0, source.Length - 2) + num.ToString();
    }
}
ну как он доходит до 0 то просто сокращает длину чилда на 1( а не арифметически
 
C#:
Развернуть Свернуть Копировать
string source = "1654172703390231363193871214409827255040536632558212919751502330593116592777";
string result = "";
bool change = true;
foreach(char c in source.Reverse()){
    if(change){
        int num = int.Parse(c.ToString());
        if(num > 0){
            result = result.Insert(0, (num - 1).ToString());
            change = false;
        }
        else result = result.Insert(0, "9");
    }
    else{
        result = result.Insert(0, c.ToString());
    }
}
if(result.First() == '0'){
    result = result.Remove(0, 1);
}
return result;
Так работает, как надо с положительными числами любой длины и с любым количеством 0 на конце.
 
  • Оценить
Реакции: Alexde и Sergodjan

Кто просматривает тему: (Всего: 0, Пользователи: 0, Гости: 0)