вспомнить всё:
2007-10-15 18:13:37
я ваще постебал!
понятно что надо там проверять весь процесс деления, мне лень :)
понятно что надо там проверять весь процесс деления, мне лень :)
2007-10-15 18:32:17
ответ единственный
найден методом усечения вероятностей появления цифр и последующим перебором из 12 вариантов)) (повезло что прямо с правильного начал -> потом алгоритм появляется)
найден методом усечения вероятностей появления цифр и последующим перебором из 12 вариантов)) (повезло что прямо с правильного начал -> потом алгоритм появляется)
2007-10-15 18:32:47
ей, математеги, а сколько ещё минимально ограничений нуно добавить, чтоб тока одно решение было? ^_^
2007-10-15 19:19:47
путем долгих рассуждений было выведено
12128316 / 124 = 97809
(никаких переборов)
12128316 / 124 = 97809
(никаких переборов)
2007-10-15 19:26:09
Вот оно!!!
long chasnoe;
long delimoe,delitel;
long temp;
for (delimoe=10000000;delimoe<=99999999;delimoe++){
for (delitel=100;delitel<=999;delitel++){
chasnoe=delimoe/delitel;
if (chasnoe*delitel!=delimoe) continue;
if (chasnoe<10000 || chasnoe >99999) continue;
//проверка известных цисел в часном на 7 и 0
temp=(((double)chasnoe/10000)*10)-(chasnoe/10000*10);
if (temp!=7) continue;
temp=(((double)chasnoe/100)*10)-(chasnoe/100*10);
if (temp!=0) continue;
//проверка на кол-во чифр в при умножении часного на делитель
//перовое умножение должено быть 4-е цифры
temp=(((double)chasnoe/100000)*10)-(chasnoe/100000*10);
if (delitel*temp<1000 || delitel*temp>9999 ) continue;
//второе умножение на известную 7 должено быть 3-и цифры
if (delitel*7<100 || delitel*7>999) continue;
//третье умножение должно быть 3-и цифры
temp=(((double)chasnoe/1000)*10)-(chasnoe/1000*10);
if (delitel*temp<100 || delitel*temp>999) continue;
//четвертого умножения нет так как там 0 от сноса
//......
//пятое умножение должно быть 4-ре цифры
temp=(((double)chasnoe/10)*10)-(chasnoe/10*10);
if (delitel*temp<1000 || delitel*temp>9999 ) continue;
Memo1->Lines->Add(IntToStr(delimoe)+"/"+IntToStr(delitel)+"="+IntToStr(chasnoe));
}
}
long chasnoe;
long delimoe,delitel;
long temp;
for (delimoe=10000000;delimoe<=99999999;delimoe++){
for (delitel=100;delitel<=999;delitel++){
chasnoe=delimoe/delitel;
if (chasnoe*delitel!=delimoe) continue;
if (chasnoe<10000 || chasnoe >99999) continue;
//проверка известных цисел в часном на 7 и 0
temp=(((double)chasnoe/10000)*10)-(chasnoe/10000*10);
if (temp!=7) continue;
temp=(((double)chasnoe/100)*10)-(chasnoe/100*10);
if (temp!=0) continue;
//проверка на кол-во чифр в при умножении часного на делитель
//перовое умножение должено быть 4-е цифры
temp=(((double)chasnoe/100000)*10)-(chasnoe/100000*10);
if (delitel*temp<1000 || delitel*temp>9999 ) continue;
//второе умножение на известную 7 должено быть 3-и цифры
if (delitel*7<100 || delitel*7>999) continue;
//третье умножение должно быть 3-и цифры
temp=(((double)chasnoe/1000)*10)-(chasnoe/1000*10);
if (delitel*temp<100 || delitel*temp>999) continue;
//четвертого умножения нет так как там 0 от сноса
//......
//пятое умножение должно быть 4-ре цифры
temp=(((double)chasnoe/10)*10)-(chasnoe/10*10);
if (delitel*temp<1000 || delitel*temp>9999 ) continue;
Memo1->Lines->Add(IntToStr(delimoe)+"/"+IntToStr(delitel)+"="+IntToStr(chasnoe));
}
}
2007-10-15 19:50:00
Ой, уже решили. :-) Вообщем ещё раз тогда спасибо. Если ещё чо такое будет кидайте, давайте пищу для ума.
2007-10-15 19:50:42
всего получается 609 вариантов ответов
например
12260934/126=97309
12265120/140=87608
12265260/140=87609
12273408/126=97408
12273534/126=97409
12279120/140=87708
12279260/140=87709
12282228/141=87108
12282369/141=87109
12286008/126=97508
12286134/126=97509
12296328/141=87208
12296469/141=87209
12298608/126=97608
12298734/126=97609
12310428/141=87308
12310569/141=87309
12311208/126=97708
12311334/126=97709
например
12260934/126=97309
12265120/140=87608
12265260/140=87609
12273408/126=97408
12273534/126=97409
12279120/140=87708
12279260/140=87709
12282228/141=87108
12282369/141=87109
12286008/126=97508
12286134/126=97509
12296328/141=87208
12296469/141=87209
12298608/126=97608
12298734/126=97609
12310428/141=87308
12310569/141=87309
12311208/126=97708
12311334/126=97709
2007-10-15 20:01:35
chasnoe=delimoe/delitel;
if (chasnoe*delitel!=delimoe) continue;
это проверка деления нацело... то есть остаток 0, как указанно в задаче
if (chasnoe*delitel!=delimoe) continue;
это проверка деления нацело... то есть остаток 0, как указанно в задаче
2007-10-16 23:14:04
12128316 : 124 = 97809
Ход мысли следующий:
1) частное ровно 97809: три цифры - три = три, но ниже четыре - три = две, т.о. в частном третья цифра = 8, не 7.
2) 112 <= делитель <= 124.
3) последняя ненулевая разность 10 или 11.
4) (делитель*8) >= 1000-10=990.
5) делитель = 124.
Ход мысли следующий:
1) частное ровно 97809: три цифры - три = три, но ниже четыре - три = две, т.о. в частном третья цифра = 8, не 7.
2) 112 <= делитель <= 124.
3) последняя ненулевая разность 10 или 11.
4) (делитель*8) >= 1000-10=990.
5) делитель = 124.
[0][1]