题目要求html
输入四则运算的规则和表达式,测试程序能够自动判断表达式是否符合规则java
输入输出示例:git
输入:github
{ "config": { "numberOfExpression": 30, "range": 30, "hasFraction": false, "hasMultipleAndDivide": true, "hasParentheses": true }, "expressions": { "3 × ( 3 + 3 )": "18", "( 3 + 3 )": "6" } }
输入参数说明:
在config中:spring
在expressions中express
输出:apache
{ "config": { "numberOfExpression": 30, "range": 30, "hasFraction": false, "hasMultipleAndDivide": true, "hasParentheses": true, "hasNegative": false, "answer": false, "maxNumberOfOperation": 3 }, "results": [ { "3 × ( 3 + 3 )": { "true": "符合要求的表达式" } }, { "( 3 - 1 )": { "false": "题目中的乘除法不符合要求" } } ], "enough": false }
输出参数说明:json
RESTful接口地址(试用版),api
运行地址数组
String generate(String configs)
入参,字符串类型,可配置项见配置参数:
{ "numberOfExpression": "10", "range": "10", "hasFraction": "false", "hasMultipleAndDivide": "true", "hasParentheses": "false", "hasNegative": "true", "answer": "true" }
返回:
[8 - 5 ÷ 6 × 9 = 0.5, 7 + 8 = 15.0, 9 × 9 = 81.0, 7 × 6 + 4 ÷ 7 = 42.57142857142857, 5 ÷ 7 - 4 = -3.2857142857142856, 2 - 9 - 1 + 1 = -7.0, 3 ÷ 2 × 6 = 9.0, 1 × 0 = 0.0, 4 × 3 = 12.0, 3 - 7 - 5 = -9.0]
String answer(String expression)
入参:
4 × ( 9'1/7 - 5 ) ÷ 3
返回:
4 × ( 9'1/7 - 5 ) ÷ 3 = 5.523809523809524
String retrieveDefaultTemplate()
返回默认的JSON配置:
{ "numberOfExpression": "10", "range": "10", "hasFraction": "false", "hasMultipleAndDivide": "true", "hasParentheses": "false", "hasNegative": "true", "answer": "true" }
注: 解析命令行参数采用了JCommander进行解析。
最初想法,实际上是很简单粗暴的,把要生成的运算式当作字符串,这个字符串中: