JavaScript实现从不分计算符号的优先级左到右计算数学表达式

本文介绍了一种从左到右计算数学表达式的方法,不考虑运算符优先级,并提供Python实现。此外,还讨论了如何计算特定条件下集合中元素的数量及去除序列中重复元素的算法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.从左到右计算数学表达式,不分计算符号的优先级
<!DOCTYPE html>
<html>

	<head>
		<meta charset="{CHARSET}">
		<title></title>
	</head>

	<body>
		<!--
        	作者:mht
        	时间:2017-03-25
        	描述:从左到右计算数学表达式,不分计算符号的优先级
        -->
		<script>
			var str = "11+2*5-11";
			var reg3 = /([+\-*]+|\d+)/gi;//匹配+-*或数字运算符
			var numList = str.match(reg3);//将字符串安不同数据类型分割
			var result = parseInt(numList[0]);
			for(var i = 1; i < numList.length - 1; i++) {
				var temp = numList[i];
				var temp2 = numList[i + 1];				
			if(temp.match(/\*/)) {
					result = result * parseInt(temp2);
				} else if(temp.match(/\-/)) {
					result = result - parseInt(temp2);
				} else if(temp.match(/\+/)) {
					result = result + parseInt(temp2);
				}else {continue;}//若为数字则跳过本次循环
			}
			console.log(result);//"54"
			console.log(numList);//"11,+,2,*,5,-,11"
		</script>
	</body>
</html>

Python实现方法(0-9数字)

a=raw_input()
result=int(a[0])
for i in range(len(a)-1):
    if(a[i]=='-'):
        result-=int(a[i+1])
    elif (a[i]=='+'):
        result+=int(a[i+1])
    elif (a[i]=='*'):
        result*=int(a[i+1])
    else:
        continue
print result
2. 集合的特性是确定性、无序性和互异性。现有有个集合S = {p/q|w<=p<=x,y<=q<=z},给定w,x,y,z四个整数,求这样的集合共有多少个。
    输入:1 10 1 1

输出:10

Python实现代码:

#!/usr/bin/python
# -*- coding: UTF-8 -*-
w=raw_input()
li1=[]
li2=[]
li=[]
x = w.split(" ")
len1=int(x[1])-int(x[0])
len2=int(x[3])-int(x[2])
for i in range(int(x[0]),int(x[1])+1):
     li1.append(i)
for j in range(int(x[2]),int(x[3])+1):
     li2.append(j)
for i in li1:
     for j in li2:
         temp=float(i)/float(j)
         li.append(temp)
se =set(li)
length=len(se)
print(length)
3.小易有一个长度为n序列,小易想移除掉里面的重复元素,但是小易想是对于每种元素保留最后出现的那个。小易遇到了困难,希望你来帮助他。 
输入描述:
输入包括两行:
第一行为序列长度n(1 ≤ n ≤ 50)
第二行为n个数sequence[i](1 ≤ sequence[i] ≤ 1000),以空格分隔
输出描述:
输出消除重复元素之后的序列,以空格分隔,行末无空格

输入例子:
9
100 100 100 99 99 99 100 100 100

输出例子:
99 100

Python代码

n=raw_input()
n=int(n)
numlist=raw_input()
x = numlist.split(" ")
li=[]
arr=[]
for i in range(0,9):
     if x[i] in li:
          index=li.remove(x[i])
          li.append(x[i])
     else:
          li.append(x[i])
#print li
b=' '.join(li)
print b





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值