一道给小学生出题的程序

来源:百度知道 编辑:UC知道 时间:2024/06/01 13:12:18
某小学给学生留作业,要求为一个5000以内的加减乘除括号四则运算的题目。
要求:
1. 程序每次运行都生成30道包含+,-,*,/,(,)的题目。
2. 操作符号顺序是随机的。
3. 因为是小学生,没有代数和以及负数的概念,所以任何时刻减法都必须是减数小于被减数。
4. 任何中间过程中的除法都必须能整除,无分数的概念。
5. 所有中间结果和最终结果都要小于5000.
6. 将正确结果也输出出来,但是用16进制表示
7. 将结果输出到question.txt的文件中,格式如下:
100+500-300*5/6 = (15E)
(200-50)/3 *6 -10 = (122)
……

哈哈,这种程序我以前也写过,只不过那是20年以期的事,用的是AppleII的机器,BASIC编的。
思路:减法和除法不要管,只要编加法和乘法。然后逆算成减法和除法。
以前的程序找不到了,十分抱歉。
其实这很难做,给100分未必有人愿意做,四则运算再加括号,必须是正数且必须能整除,又不能使负数。条件越多越难做。
提供你点当初我的思路:用逆波兰式表达,可省去括号的麻烦,...,最后把逆波兰式翻译成四则算式。