Google Code Challenge - Palindrome,未找到参数(int)

时间:2016-08-02 22:20:38

标签: java

这个程序的目标是给定一个数n,返回最小的正整数b,至少为2,其中整数n是回文。

像:

输入:(int)n = 0, 输出:(int)2

输入:(int)n = 42, 输出:(int)4

但我一直得到回应:

  

使用com.google.challenges.Answer

中找不到的参数(int)回答公共静态方法

我确实宣布我的方法采用int ... 有人可以帮我理解这个错误意味着什么以及如何解决它?

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);
 }
}

2 个答案:

答案 0 :(得分:2)

使用参数(int)&#34;来比较&#34;公共静态方法回答 使用您的代码&#34; public static int 回答(int n)&#34;。

他们不是以相同的字母开头,Java是区分大小写的以及所有。

将方法重命名为answer

答案 1 :(得分:0)

创建类是使用面向对象代码的好方法。在您的代码中,您正在使用类构造函数来完成繁重的工作。理想情况下,构造函数只有初始信息。例如:

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

然后在你的主文件中你可以做这样的事情

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