Saik (Normal User)
Pro
Messaggi: 117
Iscritto: 07/08/2011
|
Ciao ragazzi mi sono imbattuto in questo problema
[codeIl prode mateninja Numeruto `e pi`u bravo sul campo che sui banchi. Oggi c’`e il compito di storia e la prima
domanda chiede il numero esatto di mateninja diplomatisi Grandin, dalla fondazione del villaggio ad oggi
ed egli proprio non ha idea della risposta. Per fortuna riesce ad intercettare un suggerimento in codice della
bella Otenusa diretto al suo rivale Sekante: “`E un numero di quattro cifre, multiplo di 25 che, diviso per 25,
d`a un numero di due cifre che, scambiate, sono le cifre centrali del numero stesso” (come 54 e 2450, solo
che 54×25 diverso da 2450). Qual `e la risposta?
Sono arrivato alla conclusione che il numero è compreso fra 1000 e 2500 ma non riesco a proseguire...
P.S: non voglio la soluzione al problema ma voglio solo un'idea su come procedere
|
|
tasx (Dev Team)
Expert
Messaggi: 439
Iscritto: 15/12/2008
|
l'ho scritto così su due piedi, penso sia giusto.....
for (i = 0; i < 2500; i++)
{
if (i % 25 == 0)
{
var a = i / 25;
var b = a.toString();
var c = b[1] + b[0];
var d = i.toString();
var e = d[1] + d[2];
if (c == e) {window.console.log("number is: " + i);}
}
}
|
|
()
Newbie
Messaggi:
Iscritto:
|
Dato che il numero diviso 25 da' un risultato di 2 cifre, questo può essere compreso solo tra
40 e 99
(inclusi gli estremi) dato che
40*25 => 1000 è il primo valore utile a 4 cifre multiplo di 25
e
99*25 => 9975 è l'ultimo valore utile a 4 cifre multiplo di 25
Ora devi notare che i multipli di 25 avranno nella penultima cifra sempre una tra
0, 2, 5, 7
Considera che questa sarà la prima cifra delle due da cercare (dato che sono invertite) ma il numero non può iniziare per 0 o 2 perché il minimo è 40. Dunque inizierà per
5 o 7
Anche provando solamente i venti valori possibili, arriverai semplicemente alla soluzione ... ovvero 79 ... 1975
|
|
tasx (Dev Team)
Expert
Messaggi: 439
Iscritto: 15/12/2008
|
Postato originariamente da nessuno:
Dato che il numero diviso 25 da' un risultato di 2 cifre, questo può essere compreso solo tra
40 e 99
(inclusi gli estremi) dato che
40*25 => 1000 è il primo valore utile a 4 cifre multiplo di 25
e
99*25 => 9975 è l'ultimo valore utile a 4 cifre multiplo di 25
Ora devi notare che i multipli di 25 avranno nella penultima cifra sempre una tra
0, 2, 5, 7
Considera che questa sarà la prima cifra delle due da cercare (dato che sono invertite) ma il numero non può iniziare per 0 o 2 perché il minimo è 40. Dunque inizierà per
5 o 7
Anche provando solamente i venti valori possibili, arriverai semplicemente alla soluzione ... ovvero 79 ... 1975
|
|
|
()
Newbie
Messaggi:
Iscritto:
|
Beh ... anche tu ci hai messo qualcosa in più ... se devi far fare al computer, tanto vale un algoritmo brute force stupidissimo ma efficace e breve ...
|
|
Phi (Member)
Expert
Messaggi: 241
Iscritto: 30/12/2009
|
Beh, una volta che sabbiamo che il numero inizia con 5 o 7 possiamo ridurre ulteriormente i casi notando che anche la cifra delle migliaia del numero di 4 cifre deve essere 1.
Quindi scrivere
25(10a+b)=1000+100b+10a+x
Dove a=5 o a=7, e x=0 o x=5, troviamo
b=(240a-x)/75
proviamo 4 casi e vediamo che b risulta intero solo se a=7 e x=5, caso in cui risulta b=9
Edit : comunque, se ti interessa una soluzione che non usi calcolo automatizzato, penso che il posto migliore sia questo http://www.oliforum.it/
Ultima modifica effettuata da Phi il 19/11/2012 alle 22:16 |
|
Saik (Normal User)
Pro
Messaggi: 117
Iscritto: 07/08/2011
|
Grazie a tutti comunque io intendevo risolvere il problema senza utilizzare il pc come hanno fatto Nessuno e Phi
P.S Phi penso che darò un occhiata a quel forum
|
|
Qwertj (Dev Team)
Guru
Messaggi: 678
Iscritto: 30/05/2011
|
Postato originariamente da tasx:
l'ho scritto così su due piedi, penso sia giusto.....
for (i = 0; i < 2500; i++)
{
if (i % 25 == 0)
{
var a = i / 25;
var b = a.toString();
var c = b[1] + b[0];
var d = i.toString();
var e = d[1] + d[2];
if (c == e) {window.console.log("number is: " + i);}
}
} |
Hai dimenticato di chiamare il metodo Brain.off(); |
|