Java 欧几里德算法

Java 欧几里德算法,java,android,algorithm,division,greatest-common-divisor,Java,Android,Algorithm,Division,Greatest Common Divisor,我需要在我的android程序中使用欧几里德算法。以下是我的主要活动: import android.os.Bundle; import android.app.Activity; import android.view.Menu; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.TextView; pu

我需要在我的android程序中使用欧几里德算法。以下是我的主要活动:

import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;

public class MainActivity extends Activity {
TextView answer;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    answer = (TextView) findViewById(R.id.textView1);

     Button proceed = (Button) findViewById(R.id.button1);
     proceed.setOnClickListener(new OnClickListener() {

            public void onClick(View v) {
                int ans = Euclid.gcd(6, 9);
                answer.setText(ans);
            }
        });
       }

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.main, menu);
    return true;
}


}
我想让我的程序做的事情是,当我点击按钮时,给我最大公除法(GCD)。我试着用这部分代码来实现:

public void onClick(View v) {
int ans = Euclid.gcd(6, 9);
answer.setText(ans);
}
这是我的欧几里德课程:

public class Euclid {

// recursive implementation
public static int gcd(int p, int q) {
    if (q == 0) return p;
    else return gcd(q, p % q);
}

// non-recursive implementation
public static int gcd2(int p, int q) {
    while (q != 0) {
        int temp = q;
        q = p % q;
        p = temp;
    }
    return p;
}

public static void main(String[] args) {
    int p = Integer.parseInt(args[0]);
    int q = Integer.parseInt(args[1]);
    int d  = gcd(p, q);
    int d2 = gcd2(p, q);
    System.out.println("gcd(" + p + ", " + q + ") = " + d);
    System.out.println("gcd(" + p + ", " + q + ") = " + d2);
}
}
问题是,当我点击按钮时,我的应用程序崩溃了。那么问题出在哪里,我该如何解决呢。我知道这是一个无效的点击部分。请提供帮助。

的整数参数是资源id,而不是要显示的文本整数。而是使用类似

answer.setText(Integer.toString(ans));

在文本视图中显示整数。

你能发布你的日志吗?伙计们,你能解释一下你为什么要投反对票吗?