Autor |
Beitrag |
   
Sandy

| Veröffentlicht am Samstag, den 20. Oktober, 2001 - 20:09: |
|
Wie viele Häuser hat ein Dorf? Mit dieser Scherzfrage ist folgende Aufgabe gemeint: Gesucht sind alle diejenigen natürlichen Zahlen n, für die es möglich ist, in der Gleichung n ( multipliziert mit) HAUS = DORF jeden Großbuchstaben so zu ersetzen, und zwar verschiedene Buchstaben durch verschiedene Ziffern, so dass dabei durch das Wort HAUS und das Wort DORF jeweils eine im dekadischen Positionssystem vierstellige Zahl dargestellt wird und so dass mit diesen Zahlen die Gleichung erfüllt ist. Wenn Sie wollen können Sie auch ein kleines Programm angeben, mit dem sich alle Lösungsbeispiele finden lassen. Könnt ihr mir helfen, ich kapier das leider nicht!!! |
   
J

| Veröffentlicht am Sonntag, den 21. Oktober, 2001 - 11:28: |
|
Mal sehen, wie weit ich komme: Man kann sehen: 1) HAUS und DORF stehen für zwei vierstellige zahlen! 2) Die insgesamt 8 ziffern in diesen beiden zahlen sind offenbar alle verschieden 3) H und D stehen jedenfalls nicht für die 0, 4) da H größer oder gleich 1 und D kleiner oder gleich 9 ist, muss n kleiner oder gleich 9 sein 5) n= 1 fällt offensichtlich weg, da sonst HAUS = DORF wäre Betrachten wir nun die anderen natürlichen zahlen: hier gibt es für alle möglichkeiten mehrere, z.teil viele beispiele: 2 * 1548 = 3096 3 * 1609 = 4827 4 * 1738 = 6952 5 * 1278 = 6390 6 * 1309 = 7854 7 * 1209 = 8463 8 * 1037 = 8296 9 * 1042 = 9378 Beachte, dass in den ersten 7 beispiA,U,S,D,O,R,F und n für verchiedene ziffern stehen! für n= 8 und n= 9 gibt es solche lösungen nicht. Die Lösungen hab ich mit einem kleine Programm in turbo-pascal gefunden. Gruß J |
   
Robert

| Veröffentlicht am Dienstag, den 23. Oktober, 2001 - 18:36: |
|
Hallo J! Was für ein Programm ist das genau? Ich habe auch so ein ähnliches aber bei mir funktioniert das nicht so ganz! Wie hast du das gemacht? Gruß Robert |
   
J

| Veröffentlicht am Mittwoch, den 24. Oktober, 2001 - 14:57: |
|
Anbei mein eilig hingeschriebenes programm; es erfüllt eigentlich nicht die ansprüche, die ich selbst an ein gutes programm stelle, aber es liefert die löungen.Bevor du es weiter gibst, solltest du es überarbeiten! program hausdorf; var h,a,u,s,d,o,r,f,n, haus,dorf:integer; procedure test(haus,dorf:integer); var ziffer: array[0..9] of char; i,j,haus2,dorf2:integer; begin haus2:= haus; dorf2:=dorf; for i:= 0 to 9 do ziffer[i] := ' '; ziffer[n]:='n'; ziffer[haus mod 10] := 's'; haus:= haus div 10; ziffer[haus mod 10] := 'u'; haus:= haus div 10; ziffer[haus mod 10] := 'a'; haus:= haus div 10; ziffer[haus mod 10] := 'h'; ziffer[dorf mod 10] := 'f'; dorf:= dorf div 10; ziffer[dorf mod 10] := 'r'; dorf:= dorf div 10; ziffer[dorf mod 10] := 'o'; dorf:= dorf div 10; ziffer[dorf mod 10] := 'd'; j:= 0; for i:= 0 to 9 do if ziffer[i] = ' ' then inc(j); if j= 1 then WRITE(haus2,' ',dorf2,'|'); end; begin for n:= 2 to 9 do begin writeln;writeln(n); for h:= 1 to 9 do for a:= 0 to 9 do for u:= 0 to 9 do for s:= 0 to 9 do begin haus:= 1000*h+100*a+10*u+s; dorf:= n*haus; if dorf <10000 then test(haus,dorf); end; end; end. |
|