首页 > 编程语言 >java自动计算(王建民必考)

java自动计算(王建民必考)

时间:2023-03-07 21:22:16浏览次数:39  
标签:王建民 java String int str1 System 必考 str out

//import java.util.random.*;
import java.util.Random;
import java.util.Scanner;

public class main {
Scanner S = new Scanner(System.in);
static Random random = new Random();

static int get_number() {
int a = (int)random.nextInt(99);
return a;
}

static int get_number(int a,int b) {
int c = (int)random.nextInt(b-a)+a;
return c;
}
static boolean yanzheng(int n,String end[]) {
for(int i=0;i<n-1;i++) {
for(int j=i+1;j<n;j++) {
if(end[i].equals(end[j])) {
return true;
}
}
}
return false;
}
static char get_char(int a) {
if(a < 25) {
return '+';
}
else if(a < 50) {
return '-';
}
else if(a < 75) {
return '*';
}
else
return '/';
}

static String dis_math(int a[],int b[],int c,int d,int C,int kuohao) {
int left=0,right=0;
int kuohao1=0,kuohao2=0;
String str="";
for(int i=0;i<a.length;i++) {
kuohao1 = get_number();
a[i] = get_number(c,d);
str=str+a[i];
if(i==a.length - 1) {
if(left>0&right==0) {
str = str+")";
}
break;
}
if(kuohao2>kuohao1&right==0&left>1) {
str=str+")";
right++;
}
if(C!=1&b[i]>50) {
b[i] =b[i]-50;
}
b[i] = get_number();
str=str+get_char(b[i]);
if(left>0) {
left++;
}
if(kuohao1>50&left==0&i<a.length-2) {
str=str+"(";
left++;
}
kuohao2 = get_number();
}
return str;
}
public static String chengchu(String str,char c) {
String k ="";
int a,b;
System.out.println("计算乘除:"+str);
a=Integer.parseInt(str.substring(0,str.indexOf(c)));
b=Integer.parseInt(str.substring(str.indexOf(c)+1));
if(c == '*')
a=a*b;
else if(c == '/') {
a=a/b;
}
k=k+a;
System.out.println("得到"+k);
return k;
}
public static String jiajian(String str,char c) {
String k ="",str1;
int a,b;
System.out.println("计算加减:"+str);
if(str.charAt(0)==c) {
str1=str.substring(1);
a=Integer.parseInt(str.substring(0,str1.indexOf(c)-11));
b=Integer.parseInt(str1.substring(str.indexOf(c)));
}
else {
a=Integer.parseInt(str.substring(0,str.indexOf(c)));
b=Integer.parseInt(str.substring(str.indexOf(c)+1));
}
if(c == '+')
a=a+b;
else if(c == '-') {
a=a-b;
}
k=k+a;
System.out.println("得到"+k);
return k;
}

public static String chai_chengchu(String str) {
System.out.println("我要开动咯!");
int a=0,b=0;
boolean T = true;
String str1=new String(),temp,str2=new String(),str3=new String();
System.out.println(str);
while(true) {
for(int j=0;j<str.length();j++) {
if(str.charAt(j)=='*'||str.charAt(j)=='/') {
T=false;
break;
}
}
if(T==true) {return str;}
for(int i=0;i<str.length();i++) {
if(str.charAt(i)=='*'||str.charAt(i)=='/') {
for(int j=i-1;j>=0;j--) {
if(str.charAt(j)=='+'||str.charAt(j)=='-') {
a=j;
break;
}
a=j-1;
}
for(int j=i+1;j<str.length();j++) {
if(str.charAt(j)=='+'||str.charAt(j)=='-'||str.charAt(j)=='*'||str.charAt(j)=='/') {
if(str.charAt(j-1)=='*'||str.charAt(j-1)=='/') {
b=j+1;
continue;
}
b=j;
break;
}
b=j+1;
}
str1=str.substring(a+1,b);
str2=str.substring(0,a+1);
str3=str.substring(b);
temp=chengchu(str1,str.charAt(i));
str=str2+temp+str3;
System.out.println("当前计算式"+str);
break;
}
}
//System.out.println("最终"+str);
//System.exit(1);
T=true;
str1="";
str2="";
str3="";
}
}
public static String jisuan(String str) {
boolean T=true;
int b = 0;
String str1=new String(),str2=new String(),str3="";
System.out.println("进入拆乘除:");
str1 = chai_chengchu(str);
System.out.println("拆乘除结束:");
System.out.println(str1+"进入全加减模式");
while(true) {
for(int j=0;j<str1.length();j++) {
if(str1.charAt(j)=='+'||str1.charAt(j)=='-') {
T=false;
break;
}
}
if(T==true) return str1;

for(int i=1;i<str1.length();i++) {
if(str1.charAt(i)=='+'||str1.charAt(i)=='-') {
for(int j=i+1;j<str1.length();j++) {
if(str1.charAt(j)=='+'||str1.charAt(j)=='-') {
b=j;
break;
}
b=j+1;
}
str2 = str1.substring(0,b);
str3 = str1.substring(b);
str2 = jiajian(str2,str1.charAt(i));
str1 = str2+str3;
if(str3 == "") {
return str1;
}
break;
}
}
T=true;
}
}

public static String chai_kuohao(String str) {
int a=0,b=0;
String str1="",temp,str2="",str3="";
for(int i=0;i<str.length();i++) {
if(str.charAt(i)=='(') {
a=i;
for(int j=i;j<str.length();j++) {
if(str.charAt(j)==')') {
b=j;
break;
}
}
str1=str1+str.substring(a+1,b);
str2=str.substring(0,a);
str3=str.substring(b+1);
System.out.println("这是括号里的:"+str1);
temp=jisuan(str1);
str1=str2+temp+str3;
}
}
System.out.println("括号内部计算完毕");
if(str1=="") {
str1=str;
}
return jisuan(str1);
}

public static void main(String[] args) {
int k=0;
Scanner S = new Scanner(System.in);
int math_n,/*math_k,*/math_nn,C=0,c,kuohao,d,W;
System.out.print("是否有乘除法(有请按1):");
C = S.nextInt();
System.out.print("是否有括号(有请按1):");
kuohao = S.nextInt();
System.out.println("操作数的个数:");
math_nn = S.nextInt();
System.out.println("要出的题数:");
math_n = S.nextInt();
String end[]=new String [math_n];
//String end_answer[] = new String [math_n];
System.out.print("输入列数:");
W = S.nextInt();
System.out.print("输入数值范围:");
c = S.nextInt();
d = S.nextInt();
S.close();
for(int i=0;i<math_n;i++) {
int a[] = new int[math_nn];
int b[] = new int[math_nn];
end[i] = dis_math( a, b, c, d, C, kuohao);
System.out.println(end[i]+"= ");
System.out.print(chai_kuohao(end[i]));
System.exit(1);
if(yanzheng(i,end)==true) {
continue;
}
if((i+1)%W==0) {
System.out.println();
}
}
System.out.println("重复数:"+k+"个");
}
}

标签:王建民,java,String,int,str1,System,必考,str,out
From: https://www.cnblogs.com/cocotun/p/17189730.html

相关文章

  • Java中的单元测试
    1、概念介绍单元测试(unittesting),是指对软件中的最小可测试单元进行检查和验证。单元是人为规定的最小的被测功能模块。本文主要讲Java中的单元测试中的代码编写,一般最小......
  • Java基础
    Java基础注释平时我们编写代码,在代码量比较少的时候,我们还可以看懂自己写的,但是当项目结构一旦复杂起来,我们就需要用到注释了。注释并不会被执行,是给我们写代码的人......
  • Java官方笔记1编写运行Java程序
    你可能已经迫不及待想安装Java,写个Java程序跑起来了。但是在这之前,有些概念需要提前了解,因为Java跟C、C++和Python都有点不一样。编译和执行我们在文本文件中编写英文代......
  • 03Java8日期处理
    使用now方法根据当前日期或时间创建实例对象如使用now方法创建LocalDate(年、月、日)和LocalTime(时、分、秒)等实例对象LocalTime.now()——>LocalTimenow=LocalTime.n......
  • java压缩流
    利用压缩流解压文件夹@TestpublicvoidzipInputStreamDemo()throwsException{//利用压缩流解压文件夹,注意java只识别zipFilesrc=newFile("D:/a.......
  • 【选择排序算法详解】Java/Go/Python/JS/C 不同语言实现
    【选择排序算法详解】Java/Go/Python/JS/C不同语言实现 说明选择排序(SelectionSort)是一种简单直观的排序算法。跟冒泡、插入排序一样,它将数列分为已排序和待排序两个......
  • TypeScript 与 JavaScript:你应该知道的区别
    作者:京东零售杨冰译自Radix网站的文章,原文链接:https://radixweb.com/blog/typescript-vs-javascript,原文作者:NiharRaval正在寻找经验丰富的JavaScript开发团队来将您的......
  • 在 Java 中解码 Base64 数据
    我有一个Base64编码的图像。在Java中解码它的最佳方法是什么?希望只使用SunJava6中包含的库。解答http://www.stackoverflow.ink/posts/zai-java-zhong-......
  • java -D的一些学习和使用
    背景java开发的程序有很多进行配置的方式可以通过yaml文件或者是xml文件也可以通过环境变量的方式.1.容器的话可以使用-e或者是env进行注入2.K8S的话可以通过co......
  • 推荐 7 个有用的 JavaScript 库,也许你会用的上
    推荐7个有用的JavaScript库,也许你会用的上原创2023-02-1016:52·前端达人使用这7个库,加速你的项目开发 当我们可以通过使用库轻松实现相同的结果时,为什么还要......