2014-04-07 3 views
-2

내 안드로이드 프로그램에서 유클리드 알고리즘을 사용해야합니다.유클리드 알고리즘

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

것은이입니다 난 버튼 내 응용 프로그램 충돌을 클릭합니다. 그렇다면 문제는 어디에서 어떻게 해결할 수 있습니까? 나는 그것이 onClick 부분에 void임을 안다. 도와주세요.

+1

LogCat을 게시 할 수 있습니까? –

+0

얘들 아, 왜 투표를하는거야? –

답변

2

TextView.setText(int)의 정수 인수는 표시 할 리터럴 정수가 아니라 자원 ID입니다. 대신 다음과 같이 사용하십시오.

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

정수를 TextView에 표시하려면.

+0

고맙습니다. 추신 왜 넌 투표를 했니? –

관련 문제