2016-08-02 6 views
0

Das Ziel dieses Programms ist es, gegeben eine Zahl n, gibt die kleinste positive ganze Zahl b, mindestens 2, wobei die ganze Zahl n ist ein Palindrom.Google Code Challenge - Palindrome, Parameter (int) nicht gefunden

Like:

Eingänge: (int) n = 0, Output: (int) 2

Eingänge: (int) n = 42, Output: (int) 4

aber ich bekomme immer wieder die Antwort:

öffentliche statische Methode Antwort mit Parametern (int) nicht in com.google.challenges.Answer gefunden

Ich habe meine Methode erklärt, um eine int ... zu nehmen Könnte jemand bitte mir helfen zu verstehen, was dieser Fehler bedeutet und wie ich es beheben kann?

package com.google.challenges; 
import java.lang.String; 
import java.lang.StringBuilder; 

public class Answer { 
public static int Answer(int n) { 
    String y = ""; 
    String x = ""; 
    int k = 0; 
    int b = 2; 
    int ans = 0; 
    if(n >= 0 && n <= 1000){ 
     for(b = 2; b < 1000; b++){ 

      k = n%b; 
      x += k; 
      while(n/b != 0){ 
       n = n/b; 
       k = n%b; 
       x += k; 
      } 
      for(int i = x.length();i >= 0 ;i--){ 
       y += x.charAt(i); 
      } 

      if(x.equals(y)){ 
       ans = b; 
       break; 
      } 

     }  

    } 
    return ((int)ans); 
} 
} 
+0

Ihre Methode hat ein Kapital A für Antwort, Ihr Fehler zeigt an, dass Sie es mit einem Kleinbuchstaben a aufrufen. –

+0

Danke! Es klappt! aber jetzt versage ich bei Test 2, um 4 zu testen ... –

Antwort

2

Vergleich tun "public static Methode beantworten mit Parametern (int)"
mit Ihrem Code „public static int Antwort (int n) ".

Sie beginnen nicht mit dem gleichen Buchstaben, Java ist Groß-und Kleinschreibung und alle.

Umbenennen der Methode zu answer.

+0

Danke! Es ist alles über diese Hauptstadt A ... Es ist mein erstes Mal für die Frage, danke Ihnen allen für so nett und geduldig. –

0

Erstellen einer Klasse ist eine gute Möglichkeit, objektorientierten Code zu verwenden. In Ihrem Code verwenden Sie den Klassenkonstruktor, um das Heavy Lifting durchzuführen. Idealerweise hat der Konstruktor nur erste Informationen. Zum Beispiel:

public class Answer { 
    public int input; 
    public void Answer (int n) { 
    input = n; 
    } 
    public int output(){ 
    int ans; 
    //do the calculations here 
    return ans; 
    } 
} 

Dann in Ihrer Hauptdatei können Sie so etwas wie diese

public void main(){ 
    int somenumber = 42; 
    Answer asker = new Asker(somenumber); 
    asker.output(); 
} 
+0

Während das im Allgemeinen ein guter Vorschlag ist, beantwortet es diese Frage nicht spezifisch. –

+0

* "In Ihrem Code verwenden Sie den Klassenkonstruktor, um das schwere Heben durchzuführen" * Es gibt überhaupt keinen Konstruktor im Code, also ist das definitiv falsch. Angesichts der Fehlermeldung sollte die Challenge-Lösung keine 'public static void main (String [])' Methode haben, sondern eine 'public static ??? Antwort (int) 'Methode, so dass Ihre Antwort hier überhaupt nicht auf die Frage anwendbar ist. – Andreas