2016-08-01 11 views
-4

Ich habe eine Abfrage,Wie berechnet man 24a + 36b mit Hilfe von funct (a, b) gegeben welche a + b in Funktionsumsetzung?

ich bereits Funktion func (a, b), die das Ergebnis von a + b zurückkehren, jetzt will ich 24a + 36b mit einer minimalen Anzahl von Anruf berechnen implementiert haben

funktionieren Vielen dank für die Antwort

Es gibt keinen anderen Betreiber oder irgendetwas Shifter verfügbar gerade diese

+6

Es ist unklar, was Sie wollen. Aber: 'func (24 * a, 36 * b)' scheint das zu lösen. –

+2

Warum benötigen Sie eine Funktion, um zwei Zahlen hinzuzufügen? 'result = 24 * a + 36 * b;' –

+1

Sie können den Ausdruck vereinfachen: '12 * ((2 * a) + (3 * b))'. –

Antwort

0

nur Func Wenn Sie 24 durch ein multipliziert hinzufügen möchten, und 36 b multipliziert, können Sie direkt Multiplikation tun auf die Funktion aufgerufen wird. So können Sie schreiben:

func(24*a, 36*b); 
+0

Bhai gibt es keinen anderen Operator zur Verfügung dies ist einfach ich weiß – user2315891

+0

@ user2315891: ja, aber Sie haben das nicht in Ihrer ursprünglichen Frage angegeben. Ich bin mir nicht sicher, was ich darüber denken soll, außer etwas ziemlich Unhöflichem (oder vielleicht sind Sie wie 10 Jahre alt, dann wäre es akzeptabel). Da dieses Detail die Frage vollständig ändert. – Ped7g

1
// do the 12*(2*a + 3*b) as per Thomas Matthews comment 
ab = func(a,b); 
a2b2 = func(ab,ab); 
a2b3 = func(a2b2,b); 
k2_a2b3 = func(a2b3,a2b3); 
k4_a2b3 = func(k2_a2b3,k2_a2b3); 
k8_a2b3 = func(k4_a2b3,k4_a2b3); 
r = func(k8_a2b3,k4_a2b3); 

Wenn Sie nicht die Zwischenergebnisse in zusätzliche Variablen speichern kann, sollte die substituierte ein, um eine optimale ganz in der Nähe sein, obwohl ich aus irgendeinem Grund nicht sicher fühlen kann, dass es dann optimal ist. (So ​​wie ich bin nicht 100% sicher, dass diese optimale Lösung mit Variablen ist, nur 99% sicher)

Gerade für den Spaß von ihm, die substituierten ein, func 59 mal aufgerufen:

Rückkehr func (funk (funktion (funktion (a, b), funktion (a, b)), b), funktion (funktion (funktion (a, b), funktion (a, b)), b)), func (func (func (a, b), func (a, b)), b), func (func (func (a, b), func (a, b)), b))), func (func (func (func (a, b), func (a, b)), b), func (func (func (a, b), func (a, b)), b)), func (Funk (Funk (a, b), Funk (a, b)), b), Funk (Funk (Funk (a, b), Funk (a, b)), b)))), Funk (func (func (func (a, b), func (a, b)), b), func (func (func (a, b), func (a, b)), b)), func (func (func (fu nc (a, b), Funktion (a, b)), b), Funktion (Funktion (Funktion (a, b), Funktion (a, b)), b))));

+0

Wenn Sie keine neuen Variablen erstellen dürfen, aber den Inhalt von 'a' und' b' ändern können, kann die Antwort * mit den gleichen 7x 'func' Calls umgeschrieben werden (ich lasse es als Übung, es ist sehr leicht). – Ped7g