以下代码仅供参考
import java.util.InputMismatchExceptionimport java.util.Random
import java.util.Scanner
public class Main {
public static void main(String[] args) {
Random r = new Random()
Scanner scanner = new Scanner(System.in)
boolean right = false
int a // 随机数1
int b // 随机数2
int c // 随机运算符
int i = 0 // 用户输入的答案
int d // 计算机计算的答案
try {
while (!right) {
a = r.nextInt(100)
b = r.nextInt(100)
c = r.nextInt(2)
if (c == 0) {
d = a + b
System.out.println(a + "+" + b + "=?")
} else {
d = a - b
System.out.println(a + "-" + b + "=?")
}
i = scanner.nextInt()
if (i == d) {
System.out.println("You Are Right,Goodbye!")
right = true
} else {
System.out.println("Come on,The Answer is " + d + ".")
}
}
} catch (InputMismatchException e) {
e.printStackTrace()
}
scanner.close()
}
}
花了十分钟,亲手给你订制的,测试过了正确下面给你贴出源代码
public class AddSub {
public static void main(String[] args) {
String a="4632864832684683568465765487657665765236465244"
String b="47"
int []pa=stringToInts(a)
int []pb=stringToInts(b)
String ans_add=add(pa, pb)
String ans_sub=sub(pb,pa)
System.out.println("相加结果是:"+ans_add)
System.out.println("相减结果是:"+ans_sub)
}
public static int[] stringToInts(String s){
int[] n = new int[s.length()]
for(int i = 0i<s.length()i++){
n[i] = Integer.parseInt(s.substring(i,i+1))
}
return n
}
public static String add(int []a,int []b){
StringBuffer sb=new StringBuffer()
int a_len= a.length-1
int b_len=b.length-1
int jinwei=0//进位
while(a_len>=0||b_len>=0){
int temp=0
if(a_len>=0&&b_len>=0){
temp=a[a_len]+b[b_len]+jinwei
}else if(a_len>=0){
temp=a[a_len]+jinwei
}else if(b_len>=0){
temp=b[b_len]+jinwei
}
sb.append(temp%10+"")
jinwei=temp/10
a_len--b_len--
}
return getNum(sb.reverse())
}
public static String sub(int []a,int []b){
StringBuffer sb=new StringBuffer()
boolean flag=false//判断a是不是比b小
if(a.length<b.length){
int c[]=a
a=bb=c
flag=true
}
int a_len= a.length-1
int b_len=b.length-1
int jiewei=0//借位
while(a_len>=0||b_len>=0){
int temp=0
if(a_len>=0&&b_len>=0){
if((a[a_len]-jiewei)<b[b_len]){
temp=a[a_len]+10-b[b_len]-jiewei
jiewei=1
}else{
temp=a[a_len]-b[b_len]-jiewei
}
}else if(a_len>=0){
temp=a[a_len]-jiewei
jiewei=0
}
sb.append(temp+"")
a_len--b_len--
}
if(flag){
return getNum(sb.append("-").reverse())
}
return getNum(sb.reverse())
}
//去掉最前面的0
public static String getNum(StringBuffer sb){
while(sb.length() >1 &&sb.charAt(0) == '0') {
sb.deleteCharAt(0)
}
return sb.toString()
}
}
public class MapTest {public static void main(String[] args) {
Map<String, Integer>map = new HashMap<String, Integer>()
map.put("壹", 1)
map.put("贰", 2)
map.put("叁", 3)
map.put("肆", 4)
map.put("伍", 5)
map.put("陆", 6)
map.put("柒", 7)
map.put("捌", 8)
map.put("玖", 9)
String str = "肆+伍"// 我们就假设是这个样式的
int a = map.get(str.substring(0, 1))
char b = str.charAt(1)
int c = map.get(str.substring(2, 3))
switch (b) {
case '+':
System.out.println(a + c)
break
case '-':
System.out.println(a - c)
break
case '*':
System.out.println(a * c)
break
case '/':
System.out.println(a / c)
break
default:
System.out.println("未定义的符号")
}
}
}
这是一个小小的例子,给你一条路走,具体的逻辑需要你自己去修正
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)