TheBigBearNow Ответов: 1

Определите, можно ли сделать число с заранее выбранными числами и временем


У меня есть 2 массива, один из типов чисел, которые будут использоваться, и 2-й массив-это то, сколько раз это число может быть использовано. У меня есть буква, которая определяет, какой метод будет использоваться мне нужно выяснить, сколько раз я могу использовать определенное число из массива, чтобы определить букву+число "число" - это то, что я должен сделать со всеми доступными числами, которые я могу использовать. Если число не может быть сделано, я хотел бы просто сказать, что число не может быть сделано или что-то еще, но позволить программе двигаться дальше.
Вот что у меня есть
int[] picks = { 100, 50, 20, 10, 5, 1 };
            int[] times = { 10, 10, 10, 10, 10, 10 };
string choice = Console.ReadLine();
else if (choice.Equals("D")) {
Dispense(amt, billCounts);
}


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

У меня есть номера работающие чтобы использовать следующий номер если текущий весь израсходован у меня есть все что работает нормально единственное что мне осталось это остановить выбор если нет достаточного количества доступных вариантов чтобы сделать определенный номер

Richard MacCutchan

Почему вы пометили это так много разных языков? Используйте тот, на котором будет написан код. Вам также нужно показать код, в котором есть проблема.

1 Ответов

Рейтинг:
2

Zaf Khan

Dim Counts(5) As Integer = {0,0,0,0,0}
Dim tmpValue as Integer
Dim tmpMessage as string
Dim tmpTest as Boolean

' Initialise
tmpMessage = ""
tmpTest = false
tmpMessage  = ""
tmpValue = Choice

'Process
Do

   '// $100
   If tmpValue > 100 Then
      counts(0) = counts(0) + 1
      tmpValue = tmpValue - 100
   '// $50
   ElseIf tmpValue > 50 Then
      counts(1) = counts(1) + 1
      tmpValue = tmpValue - 50
   '// $20
   ElseIf tmpValue > 20 Then
      counts(2) = counts(2) + 1
      tmpValue = tmpValue - 20
   '// $10
   ElseIf tmpValue > 10 Then
      counts(3) = counts(3) + 1
      tmpValue = tmpValue - 10
   '// $5
   ElseIf tmpValue > 5 Then
      counts(4) = counts(4) + 1
      tmpValue = tmpValue - 5
   '// $1
   ElseIf tmpValue > 1 Then
      counts(5) = counts(5) + 1
      tmpValue = tmpValue - 1
   End If
Loop Until tmpValue < 1

'Finish
If Counts(0) <= 10 Then
   If Counts(1) <= 10 Then
      If Counts(2) <= 10 Then
         If Counts(3) <= 10 Then
            If Counts(4) <= 10 Then
               If Counts(5) <= 10 Then
                  tmpMessage & "This can be given in:" & vbcrlf
                  tmpMessage = tmpMessage & "   " & counts(0) & " $100 notes" & vbcrlf
                  tmpMessage = tmpMessage & "   " & counts(1) & " $50 notes" & vbcrlf
                  tmpMessage = tmpMessage & "   " & counts(2) & " $20 notes" & vbcrlf
                  tmpMessage = tmpMessage & "   " & counts(3) & " $10 notes" & vbcrlf
                  tmpMessage = tmpMessage & "   " & counts(4) & " $1 notes" 
               Else
                  tmpMessage = "Not enough $1 notes remaining in ATM"
               End If
            Else
               tmpMessage = "Not enough $5 notes remaining in ATM"
            End If
         Else
            tmpMessage = "Not enough $10 notes remaining in ATM"
         End If
      Else
         tmpMessage = "Not enough $20 notes remaining in ATM"
      End If
   Else
      tmpMessage = "Not enough $100 notes remaining in ATM"
   End If
End If

msgbox(tmpmessage)


Dave Kreskowiak

Поздравляю с попыткой сделать домашнее задание для них. Необъяснимый дамп кода на самом деле не является ответом.

В следующий раз не надо. Выполнение чьей-то домашней работы для них на самом деле не помогает им вообще.

Zaf Khan

Спасибо, теперь я знаю, что буду осторожен в следующий раз.

Patrice T

ОП тоже помогает вампиру.
80+ вопросов до сих пор

Richard Deeming

83, но это восходит к декабрю 2013 года.

Однако 41 из них были размещены с октября 2018 года.

Существует также, по-видимому, по крайней мере три версии этого вопроса на ходу.

Patrice T

Я знаю, я дал решение 1 из первых версий.