java生成两个随机数并进行加减运算

java生成两个随机数并进行加减运算,第1张

以下代码仅供参考

import java.util.InputMismatchException

import 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("未定义的符号")

}

}

}

这是一个小小的例子,给你一条路走,具体的逻辑需要你自己去修正


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11219763.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-14
下一篇 2023-05-14

发表评论

登录后才能评论

评论列表(0条)

保存