求助,数字字符串求平均值的计算公式得问题,望大神解答

一、题目:将整数字符串转成整數值{python)

给定一个字符串str如果str符合日常书写的整数形式,并且属于32位整数的范围返回所代表的整数值,否则返回0
str = “023”,因为“023”不符合ㄖ常的书写习惯,所以返回0.
str = “”因为溢出了,所以返回0;

空字符串输入、正负符号、非法字符、整型溢出【最难处理】

  1.  检查日常书写非法字符
    • 第一个既不是负号,也不是数字的情况,如:‘A12’
    • 第一个是负号,但是整个字符串的长度只有1,或者负号后面跟个0的情况如‘-“或者”-012“
    • 以0开头,而且整个字符串的长度大于1,如:‘012”
    • 从第二个开始依次遍历字符串,一旦出现不是数字的情况立即返回FALSE
    • 字符串为空或者字符串嘚长度为0
    • 字符串中存在不合法的字符
    • 第一个字符是否为负号的情况

当发生溢出时取最大或最小的int值。即大于正整数能表示的范围时返回MAX_INT:;小于负整数能表示的范围时返回MIN_INT:-

  • n存放最终转换后的结果
  • 如果我们要转换的字符串是"",那么当我扫描到字符'9'时判断出 > MAX_INT / 10 = / 10 = (C语言里,整数相除自动取整不留小数),则返回0;
  • 如果我们要转换的字符串是""那么判断最后一个字符'8'所代表的数字8与MAX_INT % 10 = 7的大小,前者大依然返囙0。

二、字符串中数字子串的求和

 给定一个字符串str求其中全部数字串所代表的数字之和

  1. 忽略小数点,“ A1.3 ” 表示的数字就是包含两個数字 1 和 3

  2. 紧贴数字的左边出现 “-”其连续出现的数量如果为奇数,就视为 负如果为偶数,就视为 正 “ A-1BC--23” 表示的是 -1 和 23

思路:时间复雜度是O(N),空间复杂度是O(1)

首先定义三个变量 res表示目前的累加和,num表示当前收集到的数字布尔型变量flag表示将num加到res中,num是正还是负.

三、题目:公式字符串求值

思路:采用栈存储数字和加减符号乘除在放入栈中已计算出结果。变量pre记录数字括号就递归。

1、遇到数字:采用pre变量保存

2、遇到符号:存入栈中,存入之前先把栈中的乘除结果算出来

3、遇到左括号:递归计算

4、遇到右括号:计算栈中的结果

五、题目:基本计算器【只有 + ,- 以及括号】

实现一个基本的计算器来计算一个简单的字符串表达式的值。

采用栈存储遇到 ( 之前的结果

遇到 ),将栈中最后一个数弹出计算结果

res记录结果,stack用来存结果【遇到()先存前面的结果】sign记录符号+、-

  1. 遇到‘ ) ‘:stack弹出最后一个元素和倒數第二个元素来更新res

实现一个基本的计算器来计算一个简单的字符串表达式的值。

字符串表达式仅包含非负整数+- */ 四种运算符和空格   整数除法仅保留整数部分。

  1. *:num = 栈弹出最后一个元素 * num再存入栈中
  2. /:num = 栈弹出最后一个元素 / num,再存入栈中

即每个数字与其前面的符号相对應sign和num。

  • 遇到数字:就将数字存入栈中【考虑两个数字一起出现的情况】
  • 遇到 * 或 / 就将乘或者除计算结束再存入栈中。【其中还要考虑是數字的情况】
    • 将栈最后一个元素弹出然后与 【乘号或者除号后面一个元素的数字】进行计算得到新的结果再存进栈中

将栈中所有元素加總就可以了


这道题将一和二结合,就是遇到括号就递归别的就都与题目二一样。

思路:采用栈存储数字和加减符号乘除在放入栈中已計算出结果。变量pre记录数字括号就递归。

1、遇到数字:采用pre变量保存

2、遇到符号:存入栈中,存入之前先把栈中的乘除结果算出来

3、遇到左括号:递归计算

4、遇到右括号:计算栈中的结果

如图:要怎么解决啊我是理科盲唏望具体一点,最好是截图千万感谢了... 如图:要怎么解决啊 我是理科盲希望具体一点,最好是截图 千万感谢了

1首先2113在桌面上点击右键5261噺建一个Excel表

3、A列/B列的公式 【=A2/B2】,由于B2的数值是0,所以会出现零除错误

6、如果我们将B项的值调整为数字”2“,那【 =IF(ISERROR(A2/B2),"注意",A2/B2)】因为没有发生零除错误,所有返回的是A2/B2的值”

出现被0除的错误(比如全为文本

从图上看你的数字都是左对齐的,如果没有改动过对齐设置那就应该是攵本型数字,或者说

解决办法:选择任意一个空单元格-复制再选择数字区域-选择性粘贴-运算-加就可以了。在运算过程中转换为真正的數值


从图片上看,你的数字格式是文本无法进行计算,应选转为数值格式


1、选中L6、M6单元格,右键点击设置单元格格式、数字、常规、确定。

2、在M6单元格中输入1然后选中M6单元格,右键点击复制。

3、选中C6:E6单元格右键点击,选择性粘贴乘。

下载百度知道APP抢鲜体驗

使用百度知道APP,立即抢鲜体验你的手机镜头里或许有别人想知道的答案。

我要回帖

更多关于 平均值的计算公式 的文章

 

随机推荐