User 12470719 Ответов: 3

Мне нужна помощь с этой проблемой математического кодирования (я новичок).


Я хочу, чтобы код знал, сколько шагов осталось до ближайших десяти. Например: если у меня есть 12, ответ должен быть 8, потому что 12+8-это 20, если у меня есть 48, ответ должен быть 2, потому что 2+48-это 50. Как мне это сделать в коде? (С#)


Я должен добавить: у меня есть номер 89478598322, затем я хочу другое число, которое вы уже знаете (12), и сумма до ближайших 10 должна быть такой же, как и от последней цифры в номере"89478598322" (2).

Что я уже пробовал:

Я пробовал использовать функции Substring и if, но на самом деле не знаю, как это сделать.

Patrice T

Покажи свой код.
ближайшая десятка для 12-это 10, так что 2 шага назад.

[no name]

Я знаю но он должен подняться

MadMyche

Тогда вы ищете следующее множественный из десяти; и не самый близкий

Richard MacCutchan

Ответ “не сработает” на каждое предложение не поможет вам. Объясните, почему это не сработает; что, вероятно, невозможно, поскольку каждое решение будет работать.

3 Ответов

Рейтинг:
2

OriginalGriff

Начните с преобразования строк в числа:

string input = "38";
int value;
if (!int.TryParse(input, out value))
   {
   ... bad value: tell the user it's not a number! ...
   return;
   }
// From here, you can use value as a number.

Теперь у вас есть это число, вы можете решить, сколько до ближайших 10. Это довольно просто: если вы используете оператор модуля"%", он вернет остаток от деления. Таким образом, 38 модуль 10 вернет только "самую низкую цифру": 8. затем вы можете использовать if чтобы проверить, хотите ли вы подняться до 40 и вернуться 10 - n или до 30 и обратно n


[no name]

Не получится!

[no name]

Конечно, не будет. Это будет анализировать входные данные только в том случае, если они числовые, и передавать их в переменную value. Отсюда вы должны добавить логику, чтобы проверить, какие значения ближе всего к 12 внутри условия if. Обратите внимание, что если он не числовой, то bool выйдет из строя молча. Бросьте это ! точка

Рейтинг:
2

MadMyche

Главное для вас-знать основные математические операции и записать их.
Затем сделайте это в коде, используя термины из приведенного выше уравнения.

Менее 5 строк кода для решения, как вы описали или прокомментировали Патрис; с "особыми" исключениями, о которых позаботились
Арифметические операторы - Справочник по C# | Microsoft Docs[^]


[no name]

Не получится!

MadMyche

Приведите случай, в котором это не работает - у меня есть его настройка на DotNet Fiddle прямо сейчас

[no name]

Я думаю, что это тоже поможет изучить их : https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/operators/comparison-operators

Рейтинг:
2

George Swan

Тот факт, что это число приближается к 10, значительно упрощает дело. Все, что вам нужно рассмотреть, - это последний символ в тексте, выраженный в виде цифры, затем вычесть его из 10, и все готово, предполагая, что вы хотите, чтобы число было следующим кратным 10.


[no name]

Не получится!

George Swan

Можете ли вы пожалуйста пояснить? Является ли "не будет работать" личным заявлением?