* Двойното число
Публикувано на 10 септември 2009 от Филип Петров. Записано в Math.
Нека X е естествено число (цяло и положително), което завършва с цифрата 2. Ако вземем последната цифра на X, премахнем я и я сложим в началото на числото, то ще получим ново число Y, което е два пъти по-голямо от X. Намерете числата X и Y…
П.П. За да не стават обърквания при „слагането на последната цифра в началото на числото“, то ето един пример: ако X = abcd2, то Y = 2abcd.
13 коментара за “Двойното число”
Trackback URI | RSS за коментарите
Пусни коментар
Страници
Категории
- C/C++ (45)
- DB (36)
- Dogs (49)
- Food (7)
- History (8)
- Java (33)
- Lada (41)
- Math (104)
- Metodos (23)
- NetSec (36)
- Other (76)
- Politics (32)
- Probability (13)
- VC++.Net (1)
- XHTML/JS (25)
Нови
- Един виц за капитализма
- Как да получиш целувка?
- Лека разходка на Витоша
- Роко и Берра на училище
- Газова бутилка под багажника на Лада Нива
12 септември 2009 на 11:43
с риск да се изложа ще подхвърля една идея.
2 * ( 10*z + 2 ) = 2 * 10^n + z
12 септември 2009 на 15:25
Това не го разбрах много добре. Какво е z и какво е n?
12 септември 2009 на 22:46
няма решение или грешно условие
13 септември 2009 на 8:21
Lesna Rabota – и как го доказа това?
13 септември 2009 на 9:53
ето така:
X=abcd2
Y=2X=2abcd
=> d=4
X=abc42
Y=2X=2abc4
=> c=8
X=ab842
Y=2X=2ab84
=> b=6
X=a6842
Y=2X=2a684
=> a=3, ама се получава противоречие!
13 септември 2009 на 10:32
Е чакай, аз съм написал „ако X = abcd2, то Y = 2abcd.“. Това не значи, че „X = abcd2″. Това е просто пример, който да покаже операцията „преместване на 2 от края в началото на числото“.
Исках чрез него да не се получи объркване, а то взе, че предизвика такова :)
Иначе като гледам си на прав път!
14 септември 2009 на 11:11
написах следната програма:
LOCAL ln, ost, time
time=SECONDS()
ln=“1″
ost=“0″
DO WHILE EVALUATE(„2″+LEFT(ln,LEN(ln)))#2*EVALUATE(ln)
tmp=ln+ALLTRIM(STR(FLOOR(EVALUATE(ost+RIGHT(ln,1))/2)))
ost=ALLTRIM(STR(EVALUATE(ost+RIGHT(ln,1))%2))
ln=tmp
ENDDO
MESSAGEBOX(ln)
която изкара следния отговор:
http://img6.imageshack.us/img6/9049/91204366.jpg
това не е верен отговор, просто е достигнат лимита на дългите числа, но ясно се вижда че от едно място натам цифрите започват да се повтарят, така че няма решение.
14 септември 2009 на 11:15
Може би не става ясно, но идеята ми е, че щом числото започва с 2, значи 2но по-малкото започва с 1 => числото започва с 21 => по-малкото започва с 10 => числото започва с 210 и тн.
14 септември 2009 на 11:41
значи с повече цифри :-) става
X=105263157894736842
Y=210526315789473684
14 септември 2009 на 11:48
Браво на Lesna Rabota – това е отговорът.
Идеята е следната. X завършва с 2 => Y като двойно по-голямо завършва на 4. Да, но последното число на Y се явява предпоследно на X => X завършва на 42. От там, пак понеже Y е два пъти по-голямо от X, то предпоследното на Y трябва да е 8… Така се продължава докато не се стигне до отговора. Ако двойното число надхвърли 10 – взимаме „1 наум“ и т.н.
14 септември 2009 на 12:09
оправих си и моята програма:
LOCAL ln, ost, time
time=SECONDS()
ln=“10″
ost=“1″
DO WHILE EVALUATE(„2″+LEFT(ln,LEN(ln)-1))#2*EVALUATE(ln) OR RIGHT(ln,1)#“2″
tmp=ln+ALLTRIM(STR(FLOOR(EVALUATE(ost+RIGHT(ln,1))/2)))
ost=ALLTRIM(STR(EVALUATE(ost+RIGHT(ln,1))%2))
ln=tmp
ENDDO
MESSAGEBOX(„2*“+ln+“=“+alltrim(STR(2*EVALUATE(ln))))
14 септември 2009 на 12:23
нещо повече ако числото се повтори n пъти условието пак е вярно 2*105263157894736842105263157894736842=210526315789473684210526315789473684
14 септември 2009 на 15:20
Браво – виж това на хартия нямаше да го открия :)