java代码
package com.example.a36jzjsq;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import androidx.appcompat.app.AppCompatActivity;
public class MainActivity extends AppCompatActivity {
private EditText inputText1, inputText2;
private TextView resultText;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
inputText1 = findViewById(R.id.input1);
inputText2 = findViewById(R.id.input2);
resultText = findViewById(R.id.result);
Button addButton = findViewById(R.id.add_button);
addButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
performOperation("add");
}
});
Button subtractButton = findViewById(R.id.subtract_button);
subtractButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
performOperation("subtract");
}
});
Button multiplyButton = findViewById(R.id.multiply_button);
multiplyButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
performOperation("multiply");
}
});
Button divideButton = findViewById(R.id.divide_button);
divideButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
performOperation("divide");
}
});
Button squareRootButton = findViewById(R.id.square_root_button);
squareRootButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
performOperation("squareRoot");
}
});
Button powerButton = findViewById(R.id.power_button);
powerButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
performOperation("power");
}
});
Button factorialButton = findViewById(R.id.factorial_button);
factorialButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
performOperation("factorial");
}
});
}
private void performOperation(String operation) {
String num1 = inputText1.getText().toString();
String num2 = inputText2.getText().toString();
String result = "";
try {
switch (operation) {
case "add":
result = addBase36(num1, num2);
break;
case "subtract":
result = subtractBase36(num1, num2);
break;
case "multiply":
result = multiplyBase36(num1, num2);
break;
case "divide":
result = divideBase36(num1, num2);
break;
case "squareRoot":
result = squareRootBase36(num1);
break;
case "power":
result = powerBase36(num1, num2);
break;
case "factorial":
result = factorialBase36(num1);
break;
}
} catch (NumberFormatException e) {
result = "Invalid input";
}
resultText.setText(result);
}
public static String decimalToBase36(int decimal) {
if (decimal == 0) {
return "0";
}
StringBuilder base36 = new StringBuilder();
while (decimal > 0) {
int remainder = decimal % 36;
if (remainder < 10) {
base36.append((char) ('0' + remainder));
} else {
base36.append((char) ('a' + remainder - 10));
}
decimal /= 36;
}
return base36.reverse().toString();
}
public static int base36ToDecimal(String base36) {
int decimal = 0;
int power = 0;
for (int i = base36.length() - 1; i >= 0; i--) {
char digit = base36.charAt(i);
int value;
if (digit >= '0' && digit <= '9') {
value = digit - '0';
} else {
value = digit - 'a' + 10;
}
decimal += value * Math.pow(36, power);
power++;
}
return decimal;
}
public static String addBase36(String num1, String num2) {
int decimal1 = base36ToDecimal(num1);
int decimal2 = base36ToDecimal(num2);
int sum = decimal1 + decimal2;
return decimalToBase36(sum);
}
public static String subtractBase36(String num1, String num2) {
int decimal1 = base36ToDecimal(num1);
int decimal2 = base36ToDecimal(num2);
int difference = decimal1 - decimal2;
return decimalToBase36(difference);
}
public static String multiplyBase36(String num1, String num2) {
int decimal1 = base36ToDecimal(num1);
int decimal2 = base36ToDecimal(num2);
int product = decimal1 * decimal2;
return decimalToBase36(product);
}
public static String divideBase36(String num1, String num2) {
int decimal1 = base36ToDecimal(num1);
int decimal2 = base36ToDecimal(num2);
if (decimal2 == 0) {
return "Error: Division by zero";
}
int quotient = decimal1 / decimal2;
return decimalToBase36(quotient);
}
public static String squareRootBase36(String num) {
int decimal = base36ToDecimal(num);
double squareRootDecimal = Math.sqrt(decimal);
return decimalToBase36((int) squareRootDecimal);
}
public static String powerBase36(String num1, String num2) {
int decimal1 = base36ToDecimal(num1);
int decimal2 = base36ToDecimal(num2);
int result = (int) Math.pow(decimal1, decimal2);
return decimalToBase36(result);
}
public static String factorialBase36(String num) {
int decimal = base36ToDecimal(num);
int factorial = 1;
for (int i = 2; i <= decimal; i++) {
factorial *= i;
}
return decimalToBase36(factorial);
}
}
xml代码
<?xml version="1.0" encoding="utf-8"?><LinearLayout
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<EditText
android:id="@+id/input1"
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="wrap_content"
android:hint="Number 1"/>
<EditText
android:id="@+id/input2"
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="wrap_content"
android:hint="Number 2"/>
</LinearLayout>
<LinearLayout
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<Button
android:id="@+id/add_button"
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="wrap_content"
android:text="Add"/>
<Button
android:id="@+id/subtract_button"
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="wrap_content"
android:text="Subtract"/>
<Button
android:id="@+id/multiply_button"
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="wrap_content"
android:text="Multiply"/>
<Button
android:id="@+id/divide_button"
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="wrap_content"
android:text="Divide"/>
</LinearLayout>
<LinearLayout
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<Button
android:id="@+id/square_root_button"
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="wrap_content"
android:text="Square Root"/>
<Button
android:id="@+id/power_button"
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="wrap_content"
android:text="Power"/>
<Button
android:id="@+id/factorial_button"
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="wrap_content"
android:text="Factorial"/>
</LinearLayout>
<TextView
android:id="@+id/result"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Result"/>