算法训练 表达式计算

问题描述  输入一个只包含加减乖除和括号的合法表达式,求表达式的值。其中除表示整除。输入格式  输入一行,包含一个表达式。输出格式  输出这个表达式的值。样例输入1-2+3*(4-5)样例输出-4数据规模和约定  表达式长度不超过100,表达式运算合法且运算过程都在int内进行。思路分析:我们一般的表达式计算都是中缀表达式,而计算机中习惯用后缀表达式计算,所以,我们需要...
摘要由CSDN通过智能技术生成
问题描述
  输入一个只包含加减乖除和括号的合法表达式,求表达式的值。其中除表示整除。
输入格式
  输入一行,包含一个表达式。
输出格式
  输出这个表达式的值。
样例输入
1-2+3*(4-5)
样例输出
-4
数据规模和约定
  表达式长度不超过100,表达式运算合法且运算过程都在int内进行。

思路分析:
我们一般的表达式计算都是中缀表达式,而计算机中习惯用后缀表达式计算,所以,我们需要转换成后缀表达式,借用栈来完成计算。
要注意计算优先级的问题,若即将要入栈的是* /运算符,要考虑栈顶是否是* /,如果是,可以计算栈中已有的元素,否则,暂时不计算。说出来有点抽象,举个栗子吧。如果我们要计算4+3*2,那么当乘号*入栈的时候,不能计算4*3,因为现在符号栈顶是比乘除优先级低的+号。

在这里插入图片描述

而如果是4*3*2,栈顶元素是*,现在就可以计算4*3了。应该解释清楚了吧(。-ω-)zzz

AC代码:

#include <iostream>
#include <cstring>
#include <stack>
#include <cstdlib>//atoi函数头文件 
using namespace std;
stack<char> fu;//符号栈
stack<int> num;//数值栈

void js(char c){
   
	int n1,n2;
	if(c=='+' || c=='-' || c==')'){
   
		while(fu.top()!='('){
   
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
回答: KNN算法的数学表达式可以表示为以下形式:对于一个未知样本x,KNN算法通过计算该样本与训练集中所有样本的距离,并选择与该样本距离最近的K个训练样本。然后,根据这K个最近邻样本的标签,通过投票或者加权投票的方式来确定未知样本的标签。具体而言,对于分类问题,KNN算法可以表示为以下公式: y = mode(y_1, y_2, ..., y_K) 其中,y表示未知样本的标签,y_1, y_2, ..., y_K表示K个最近邻样本的标签,mode表示取众数操作。对于回归问题,KNN算法可以表示为以下公式: y = mean(y_1, y_2, ..., y_K) 其中,y表示未知样本的标签,y_1, y_2, ..., y_K表示K个最近邻样本的标签,mean表示取平均操作。\[1\]\[2\]\[3\] #### 引用[.reference_title] - *1* [最简单的分类算法之一:KNN(原理解析+代码实现)](https://blog.csdn.net/Cyril_KI/article/details/107302163)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [机器学习3—分类算法之K邻近算法(KNN)](https://blog.csdn.net/ex_6450/article/details/126090631)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值