![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Простая прога [D7, XP]
\/ainu © (2007-02-22 17:51:00)Привет, помогите пожалуйста написать простеньеую программу для решения следующей задачи: нужно найти четырёх значное число сумма чисел которого равна 16, произведения этих чисел равно 180. тАкже известно что первые две цифры чётные а вторые две нет.Простите за такой тупой вопрос но я только начинаю изучать делфи(мне всего 12 лет) и не знаю как сделать это.
Allexandr (2007-02-22 20:09:00) [1]
> Virgo_Style © (22.02.07 19:24) [8]
>
> число klmn, т.е. K*1000+L*100+m*10+n;
> два первых - четные, тогда обозначим K = 2k, L = 2l.
>
> тогда
> 2k+2l+m+n = 16
> 2k*2l*m*n = 180;
>
Я согласен с этим, но есть одно но. Уважаемый Virgo_Style упустил из виду, что последние два числа должны быть нечетными. А в Вашем решении m и n могут быть как четными, так и нечетными.
\/ainu (2007-02-22 20:04:00) [2]а почему оно равно K*1000+L*100+m*10+n и вообще что это значит умножить на 1000,100,10?
Вообщето я уже нашёл это число(2356), точнее это сделал моя прога. Но просто интересно что это за алгоритм который предложил Virgo_Style.
Если можно то напишите полное решение по этому методу.
Virgo_Style (2007-02-22 19:59:00) [3]\/ainu (22.02.07 19:47) [12]
K*1000+L*100+m*10+n
K, L, m, n - это цифры числа, которое равно K*1000+L*100+m*10+n
\/ainu (2007-02-22 19:47:00) [4]Virgo_Style © (22.02.07 19:24) [8]
Чё то я ничего не понял, что это значит K*1000+L*100+m*10+n;
Я попробывал написать прогу для перебора, но как я уже сказал у меня нет опыта в написании программ вот что у меня получилось
k:=k+1;
if k=9 then begin
k:=0;
l:=l+1;
if l=9 then begin
l:=0;
m:=m+1;
if m=9 then begin
m:=0;
n:=n+1;
if n=9 then begin
n:=0;
if (k+l+m+n=16) and (k*l*m*n=180) then begin
listbox1.Items.add(inttostr(k));
listbox1.Items.add(inttostr(l));
listbox1.Items.add(inttostr(m));
listbox1.Items.add(inttostr(n));
timer1.Enabled:=false;
end;
end;
end;
end;
end;
Но она не работает(хотя это меня не удевляет)
Virgo_Style (2007-02-22 19:33:00) [5]Kolan © (22.02.07 19:25) [9]
imo перебирать удобнее цифры, учитывая при этом сказанное мной выше
koha (2007-02-22 19:32:00) [6]
> \/ainu (22.02.07 17:51)
> Привет, помогите пожалуйста написать простеньеую программу
> для решения следующей задачи: нужно найти четырёх значное
> число сумма чисел которого равна 16, произведения этих чисел
> равно 180
произведение 4х значных чисел ни когда не может ровннять 180 по определению.
Kolan (2007-02-22 19:25:00) [7]«нужно найти четырёх значное число сумма чисел которого равна
16, произведения этих чисел равно 180.»
Для начала попробуй перебором.
Четырёх значное значит ровно 4 цифры(1000-9999).
Передирай числа от 1000 до 9999 и проверяй свои условия(сумма чисел равна 16, произведения этих равно 180).
Virgo_Style (2007-02-22 19:24:00) [8]число klmn, т.е. K*1000+L*100+m*10+n;
два первых - четные, тогда обозначим K = 2k, L = 2l.
тогда
2k+2l+m+n = 16
2k*2l*m*n = 180;
Из второго равенства, зная, что k,l,m,n - целые, получим возможные их значения. Подставляя их в первое уравнение (дело упрощается тем, что k,l<=4), найдем удовлетворяющий нас вариант
\/ainu (2007-02-22 19:09:00) [9]Virgo_Style © (22.02.07 19:07) [6]
Подскажи пожалуйста как хотябы на бумаги это решить, а я сам попробую прогу написать.
Virgo_Style (2007-02-22 19:07:00) [10]кстати, на бумаге тоже решается на раз-два
Virgo_Style (2007-02-22 19:00:00) [11]\/ainu (22.02.07 18:11) [4]
ну хоть полный перебор, для начала-то
\/ainu (2007-02-22 18:11:00) [12]А какай тут может быть алгоритм, есть числа где первые две цифры чётные а вторые две нет, и если сумма числа равна 16, произведения 180, то это и есть правильный ответ.
Джо (2007-02-22 18:07:00) [13]> [2] \/ainu (22.02.07 18:05)
> На бумаге очень долго, я по этому и хотел сделать это программно
СНАЧАЛА распиши алгоритм на бумаге. А потом уже переводи его в код. Если нет алгоритма, то и код сам собой не напишется :)
\/ainu (2007-02-22 18:05:00) [14]На бумаге очень долго, я по этому и хотел сделать это программно
Megabyte (2007-02-22 18:00:00) [15]Дельфи тут не причем, обычная логика.
Реши на бумаге, а названия функций мы тебе подскажем...