`
linchao198401
  • 浏览: 7170 次
  • 性别: Icon_minigender_1
  • 来自: 上海
最近访客 更多访客>>
社区版块
存档分类
最新评论

答复: 深圳两个上机题,做了三小时!(小弟处女贴,求讨论)

阅读更多
biaobiao520 写道
第一个:写一个方法,参数传递一个字符串表达式,返回结果为表达式计算结果。如:传递表达式"1+2*3+6-2/2"返回计算的结果。

第二个:9个数1-9组成三个数,如:327 654 981,每个数字只能用一次,每三个数字组成一个新的数字,第二个数是第一个数的两倍,第三个数是第一个数的三倍,用程序实现。

我的实现:
第一个:把传进来的字符串解串,用了以个while循环,只要碰到"+","-","*","/"就记录符号的index,计算index两边的值,然后再组成新的字符串返回,当字符串的长度为一的时候,就是最后的值。因为当时时间紧急,考虑的不是很全面。

第二个:用程序实现不了,但总结了三点规律:
1、三个数的百位数必须是倍数关系 如327 654 981 和 219 438 657 百位数分别为3 6 9和2 4 6
2、三个数的十位数必须均值递增,如上十位数为别为2 5 8和1 3 5
3、三个数的个位数必须均值递减,如上个位数分别为7 4 1和9 8 7

请教大家评论及指点!



首先,1+2*3+6-2/2我们知道二叉树的中序遍历。然后使用后序遍历就变成了逆波兰。就是123*+622/-+
把逆波兰的串压入栈,就是
遇到计算符号就弹出栈的最高两位进行计算。
                 /
       *       2 2 -
     3 3 +   2 2 2 1 +
  2  2 2 6 6 6 6 6 6 5
1 1  1 1 1 7 7 7 7 7 7 12

只要处理好中序和后序遍历就可以了,编程需要花点时间。

第二道题目
我也想到穷举法,当然能找到规律的话,就能让穷举的范围更小的一点,但是首先要保证规律的正确性。
这样的规律能找到越多,需要遍历的数字就越少,效果越好。
大的步骤是:
1.列出所有可能的第一个数
2.根据第一个数得到第二个以及第三个数的值
3.根据3个数值的9个数字,判断是否有重复的数字,没有重复的数字就是我们要的结果

第一个数的百位肯定是123之间选择,如果是4,那么第三个数将超过1000.
十位如果在百位是3的时候,可能不会是3,也不能比3大,所以只能是1和2.
也就是32*, 31*, 1**, 2** 是保证第一个数是正确的。
32* 有9-2=7种可能
31* 有7种可能
1** 有8 * 7=56种可能
2** 有56种可能

也就是需要for 7 + 7 + 56 + 56 = 126
当然列出所有的可能性也是需要一个程序完成的。可以编写另外的一个函数调用,也许想修改列出的算法也方便点。

对第一个数字乘以2,得到第二个数字
对第一个数字乘以3,得到第三个数字
这时候就有9个数字,接下去要做的就是判断这些数字里面是否有重复的,如果没有重复的就是想要的结果之一。

如何判断是否有重复的数字呢?
1. 用1-9遍历9个数字,如果发现有个数字找到两次,马上停止返回。9个数字遍历9遍。当然前面三位例如321,肯定是不会重复的,在比较3,2,1的时候可以跳过前面3个数字,但是这样算法就复杂了,也不能节省多少的时间。
2. 排序,然后两两比较是否相等
3. 用9个int型的数组,遍历一遍9个数字就可以,如果遍历到是1,那么置数组0位为1,遍历到2,那么置数组1位为1,如果发现本来已经是1了,那么就表示重复,这个需要9个int的空间,只需要遍历一次,比较也是判断是否为1.
分享到:
评论

相关推荐

    c语言上机试题100道!!!!!!

    在第 2 题中,需要编写一个函数 `fun`,它的功能是:求出 1 到 100 之内能北 7 或者 11 整除,但不能同时北 7 和 11 整除的所有证书,并将他们放在 `a` 所指的数组中,通过 `n` 返回这些数的个数。这道题考察了函数...

    二级java上机题库及答案!!考java的同学很值得一看

    在这个试题中,考生需要使用 Java 语言编写一个程序来计算两个整数的乘法。关键点在于如何使用 `JOptionPane` 类来获取用户输入,并将其转换为整数类型。答案是使用 `Integer.parseInt()` 方法将字符串转换为整数。 ...

    2013年计算机二级考试:《C语言》上机试题及答案二.doc

    2013年计算机二级考试:《C语言》上机试题及答案二.doc

    计算机三级数据库上机题库

    计算机三级数据库上机题库是计算机三级考试中的一个重要组成部分,这些题库涵盖了计算机三级考试中的大部分知识点,包括数据库、数据结构、算法设计、程序设计等方面的知识点。本文将对计算机三级数据库上机题库中的...

    二级VC上机!!!!!!!!

    - 主要包含填空题、改错题和编程题三种题型。 - 填空题:要求根据题目和源程序中的数字位置填写相应内容,不能改变程序行顺序。 - 改错题:通常有2-3个错误需修改,提示用"/****found****/"标记,改正时仅限在...

    c#上机习题 c#上机习题

    在C#编程学习中,上机习题是巩固理论知识,提升实践能力的重要环节。以下是一些关于C#上机习题的相关知识点: 1. **控制台应用程序**:C#中的控制台应用程序是通过`System.Console`类进行交互的基础程序类型。在第...

    三级数据库计算机上机100题题库 html版

    【标题】"三级数据库计算机上机100题题库 html版" 提供的是一个针对中国计算机等级考试三级数据库技术的上机实践题目的集合,它以HTML格式呈现,相较于原始的CHM格式,可能在阅读体验和可操作性上有一定的提升。...

    VFP上机练习软件!!!

    vfp的上机练习软件,很实用的题库!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

    vb上机题vb上机题vb上机题

    VB上机题通常涉及对VB编程环境的熟悉,包括数据库操作、界面设计、事件处理等基础知识。 1. 基本操作题: - 查询创建:在VB中,可以使用查询向导来创建标准查询。在本例中,需要基于SCORE_MANAGER数据库,选择...

    JavaScript上机实验题

    ### JavaScript上机实验题知识点概览 #### 一、JavaScript表达式和逻辑控制语句的使用 ##### 实验目的 1. **理解变量**: 学习如何声明变量、初始化变量及变量的作用范围。 2. **数据类型掌握**: 包括基本数据类型...

    最新各大公司企业真实面试题-三维上机考试题目.txt

    根据提供的文件信息,我们可以推断出这是一份包含最新各大公司企业真实面试题目的文档,主要涉及三维上机考试题目。接下来,我们将基于文件中的部分描述来解析其中可能涵盖的关键知识点。 ### 关键知识点 #### 1. ...

    c#上机试题练习及答案

    在这些C#上机试题中,我们可以学习到多个核心知识点,包括条件判断、循环、异常处理、类与对象、属性、事件、数组操作、方法重载以及颜色操作等。下面我们将逐一深入探讨: 1. 条件判断与循环:题(1)要求找出1到...

    ADO.NET考试上机题

    ADO.NET考试上机题ADO.NET考试上机题ADO.NET考试上机题ADO.NET考试上机题ADO.NET考试上机题ADO.NET考试上机题ADO.NET考试上机题ADO.NET考试上机题ADO.NET考试上机题ADO.NET考试上机题ADO.NET考试上机题ADO.NET考试...

    操作系统上机题

    在操作系统的学习中,上机题是检验理论知识理解和应用能力的重要环节。北京大学的操作系统上机题目通常会涵盖操作系统的核心概念,如进程管理、内存管理和调度算法等。 在上机题中,进程调度是常见的主题。进程调度...

    厦门大学 保研 考研 上机真题 历年真题以及详解.zip

    《厦门大学保研考研上机真题历年真题及详解》资源详解 厦门大学作为国内知名高校,其计算机类专业的保研与考研竞争激烈,备考过程中掌握历年真题及其解析至关重要。这份压缩包文件汇集了珍贵的上机真题与解答,旨在...

    计算机三级100套上机考试试题

    ### 计算机三级100套上机考试试题知识点解析 #### 第1套上机考试试题知识点 **核心知识点:** 素数检测与数组操作 - **素数定义:** 如果一个数的正因子只有1和这个数本身,那么这个数就是素数。 - **函数设计:**...

    ACCESS上机真题题库软件

    本软件包括了二级ACCESS上机真题题库,二级ACCESS历年真题,涵盖了所有的模拟题

    计算机全国等级考试三级数据库技术上机试题100题打包下载

    这些资料主要针对的是计算机全国等级考试中的三级数据库技术部分,特别是上机操作的考核内容。在准备这样的考试时,考生需要对数据库理论和实践有深入的理解。以下是一些相关的重要知识点: 1. 数据库基本概念:...

Global site tag (gtag.js) - Google Analytics