2017-12-22 32 views
-5

Was ist die beste Methode, um das Produkt von ganzzahligen Variablen durch Methodenparameter zu berechnen? Ich habe versucht, mathematische Symbole wie '*' zu verwenden, um ein Ergebnis zu erhalten, aber nichts war erfolgreich und ich bin verloren für Antworten. Jeder Rat würde sehr geschätzt, danke im Voraus.Java - Multiplikation von Variablen durch Parameter

int productOfThreeNumbers(int number1, int number2, int number3){ 
     productOfThreeNumbers(number1 * number2 * number3); 
     return 0; 
    } 
+1

http://idownvotedbecau.se/nocode/ – Andreas

+0

Zeigen Sie uns Ihre Versuche und vielleicht könnten wir Ihnen dann helfen –

+0

Ich bezweifle, dass es die Mathematik ist, dass das Problem ist. Es ist viel wahrscheinlicher, dass Ihr Versuch, "ein Ergebnis zu erhalten", irgendwie vermasselt ist (vergessen hat, einen Wert zurückzugeben, zu versuchen, einem Parameter einen Rückgabewert zuzuweisen usw.). Es ist jedoch unmöglich zu sagen, ohne Ihren Code zu sehen. Der Versuch, Ihren Code zu beschreiben, ist fast immer sinnlos. Sie müssen Ihre Frage bearbeiten, um den relevanten Code einzubeziehen, und was genau Ihr Problem damit ist, einschließlich etwaiger Kompilierungsfehler, voller Stack-Traces, erwarteter oder tatsächlicher Ausgabe usw. – azurefrog

Antwort

1

Wenn Sie einen ganzzahligen Wert von einer Multiplikation von ganzen Zahlen erhalten, wollen Sie

public Integer mult(int a,int b){ 
      int c = a*b; 
      return c; 
    } 

versuchen könnte, wenn Sie einen doppelten Wert erhalten, möchten Sie nutzen könnten:

public double mult(int a,int b){ 
      double n1 = (double) a; 
      double n2 = (double) b; 
      double c = n1*n2; 
      return c; 
    } 

Sie Rufen Sie die Methode mit:

int a = 1; 
    int b = 2; 
    int c = mult(a,b); 

oder

int a = 1; 
    int b = 2; 
    double c = mult(a,b); 

je nachdem, welche Methode Sie verwenden.

Aber ein Blick auf Ihren Code einfach nicht:

int productOfThreeNumbers(int number1, int number2, int number3){ 
    return (number1 * number2 * number3); 
    } 
+0

Versuchen Sie stattdessen Ihren Code mit Division der Multiplikation - Sie werden vielleicht bemerken, dass Sie die Genauigkeit beim Casting verlieren, das Sie im letzten Beispiel verwenden. Verwenden Sie doppelte Parameter oder weisen Sie beiden Operanden vor der Division die richtige Genauigkeit zu. –

+1

habe gerade meine Antwort bearbeitet, danke fürs Erzählen. Ich habe nicht zu sehr darauf geachtet, dass man die Genauigkeit der Multiplikation für den Rückgabewert –

+0

nicht verlieren kann, wenn man die ganzen Zahlen nicht doppelt ausgibt. Mit der Multiplikation scheint alles in Ordnung zu sein, aber ich wollte Sie nur warnen, wenn Sie dies verwenden Art des Gießens mit Division statt Multiplikation, können Sie sich einige Probleme machen. Ich denke, es war eigentlich nichts falsch mit Ihrem Code, aber ich dachte, dass dies ein guter Ort ist, um darauf hinzuweisen, dass dieser Code gut mit der Multiplikation funktioniert, aber auch nicht gut mit der Division. Prost! –

1

TriFunction definieren

@FunctionalInterface 
interface TriFunction<A,B,C,R> { 
    R apply(A a, B b, C c); 
} 

Dann verwenden Sie es:

public class Main { 
    public static void main(String[] args) { 
     TriFunction<Integer, Integer, Integer, Integer> triMult = (x,y,z) -> x*y*z; 
     System.out.println(triMult.apply(2, 1, 3)); 
    } 
} 
+0

Gepresst zu wählen, würde ich definieren 'TriFunction \t \t triMult = (x, y, z) -> (lang) x * y * z;' – greybeard

Verwandte Themen