Member 13430887 Ответов: 2

Какая сумма копировать на C#-кода в верхней выписать?


следующий код написан на aspx-сайте.

...
...
длинная сумма = 0;
for (int i = 0; i < 888; i++)
{
// GetIntFromSQL возвращает int из SQL-оператора-resultset с одним
// строка, один столбец
sum += GetIntFromSQL ("EXEC dbo.ObscureProcedure @я = "+ я.Метод toString());
};
Ответ.Писать(сумма.Метод toString());
...
...


Proceduren i Microsoft SQL Server ser ut enligt:
Создайте процедуру dbo.ObscureProcedure
@i int
АС
НАЧАТЬ
ВЫБИРАТЬ
ДЕЛО
Когда @i < 260 тогда
COUNT (*) * @i
ЕЩЕ
Граф (*) * 260
Конец как ObscureCount
ОТ
VacationGadget
ГДЕ
@i < 714
КОНЕЦ

если вы ведете его в I Microsoft SQL Server Management Studio, выполните следующую процедуру ...

Старпома ДБО.ObscureProcedure @i = 528

..... то, что вы получаете :
ObscureCount
------------
3138460

(1 ряд(ов) )

какая сумма копировать на C#-кода в верхней выписать?

мне нужна помощь в решении этой проблемы? я не знаю, как это считать ? Я новичок в этом деле, пожалуйста, помогите

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

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

Richard MacCutchan

Спросите человека, который написал код.

2 Ответов

Рейтинг:
0

OriginalGriff

Запустите его и выясните: это будет зависеть от ваших данных, к которым у нас нет доступа.


Рейтинг:
0

Richard Deeming

Пора заняться математической магией! :)

Разрушение хранимой процедуры:

  • Если @i больше или равно 714, он ничего не возвращает;
  • Если @i больше или равно 260, он возвращается 260 × C, где C это количество записей в VacationGadget стол;
  • Если @i меньше, чем 260, он возвращается @i × C;

С вашим пробным запуском, @i является 528, и в результате получается 3,138,460 Следовательно, поскольку @i больше, чем 260, мы можем сделать вывод, что C = 3,138,460 ÷ 260 = 12,071.

Теперь перейдем к петле.
  • Мы можем дисконтировать первую итерацию, так как 0 × что-нибудь = 0.
  • Мы можем возможно скидка что-нибудь от 714 к 888 - предполагая, что ваш GetIntFromSQL метод делает правильные вещи, когда хранимая процедура не возвращает никаких результатов.
  • Для 1 к 259, результат от SQL будет i × C.
    Таким образом, общая сумма для этой части цикла будет равна:
    (сумма целых чисел из 1 к 259) × C.
  • Для 260 к 713, результат от SQL будет 260 × C.
    Таким образом, общая сумма для этой части цикла будет равна (714 - 260) × 260 × C;

Сантехника некоторые цифры в:
  • (сумма целых чисел из 1 к 259)
    = 259 × 260 ÷ 2 (Почему?[^])
    = 33,670;
  • (714 - 260) × 260
    = 454 × 260
    = 118,040;

Конечным результатом будет:
33,670 × C + 118,040 × C
= 151,710 × C
= 151,710 × 12,071
= 1,831,291,410


Karthik_Mahalingam

5, аккуратный