-
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<EditText
android:id="@+id/numberEditText"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="Enter a number"
android:inputType="number" />
<Button
android:id="@+id/calculateButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Calculate Factorial"
android:layout_below="@id/numberEditText"
android:layout_centerHorizontal="true"
android:layout_marginTop="16dp" />
</RelativeLayout>
-
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
import androidx.appcompat.app.AlertDialog;
import androidx.appcompat.app.AppCompatActivity;
public class MainActivity extends AppCompatActivity {
private EditText numberEditText;
private Button calculateButton;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
numberEditText = findViewById(R.id.numberEditText);
calculateButton = findViewById(R.id.calculateButton);
calculateButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
calculateFactorial();
}
});
}
private void calculateFactorial() {
String inputText = numberEditText.getText().toString();
if (inputText.isEmpty()) {
showMessage("Please enter a number");
return;
}
int number = Integer.parseInt(inputText);
long factorial = calculateRecursiveFactorial(number);
showMessage("Factorial of " + number + " is " + factorial);
}
private long calculateRecursiveFactorial(int n) {
if (n == 0 || n == 1) {
return 1;
} else {
return n * calculateRecursiveFactorial(n - 1);
}
}
private void showMessage(String message) {
new AlertDialog.Builder(this)
.setMessage(message)
.setPositiveButton("OK", null)
.show();
}
}
No comments:
Post a Comment