各网站文风网站怎么做团购
2026/4/16 11:25:48 网站建设 项目流程
各网站文风,网站怎么做团购,网页网站设计用什么软件,网页设计与制作教程课后答案第三版​欢迎大家订阅我的专栏#xff1a;算法题解#xff1a;C与Python实现#xff01; 本专栏旨在帮助大家从基础到进阶 #xff0c;逐步提升编程能力#xff0c;助力信息学竞赛备战#xff01; 专栏特色 1.经典算法练习#xff1a;根据信息学竞赛大纲#xff0c;精心挑选…​欢迎大家订阅我的专栏算法题解C与Python实现本专栏旨在帮助大家从基础到进阶 逐步提升编程能力助力信息学竞赛备战专栏特色1.经典算法练习根据信息学竞赛大纲精心挑选经典算法题目提供清晰的代码实现与详细指导帮助您夯实算法基础。2.系统化学习路径按照算法类别和难度分级从基础到进阶循序渐进帮助您全面提升编程能力与算法思维。适合人群准备参加蓝桥杯、GESP、CSP-J、CSP-S等信息学竞赛的学生希望系统学习C/Python编程的初学者想要提升算法与编程能力的编程爱好者附上汇总贴历年蓝桥杯青少组省赛国赛C中/高级组真题解析 | 汇总【题目来源】洛谷[B4278 蓝桥杯青少年组国赛 2023] 简单算术题 - 洛谷【题目描述】给定一道没有括号的四则混合运算算术题可能包含多余的空格请编程计算出结果。运算规则如下既有乘、除法又有加、减法的要先算乘除法再算加减法同级运算时要从左往右按顺序计算所有除法运算的结果都只保留整数部分直接舍弃小数部分例如当算术题为2 3 * 4 - 10 / 6 1 / 2 * 4时优先计算乘除法有3 * 4 1210 / 6 11 / 2 * 4 0然后再计算加减法2 3 * 4 - 10 / 6 1 / 2 * 4 2 12 - 1 0 13故输出13。【输入】输入一个字符串表示算术题5 ≤ 字符串长度 ≤ 100000 5\le 字符串长度\le 1000005≤字符串长度≤100000字符串中只包含数字字符以及“”、“-”、“*”、“/”运算符不含括号可能包含空格算式中的运算数范围1 ≤ 运算数 ≤ 200 1\le 运算数\le 2001≤运算数≤200。【输出】输出一个整数表示算术题的计算结果。题目数据保证算式的每一步运算的结果都在− 2 × 10 9 ∼ 2 × 10 9 -2\times 10^9 \sim 2\times 10^9−2×109∼2×109之间。【输入样例】23*4-10/61/2*4【输出样例】13【算法标签】《洛谷 B4278 简单算术题》 #字符串# #栈# #蓝桥杯青少年组# #2023#【代码详解】// 引入所有标准库头文件方便使用各种标准库功能#includebits/stdc.h// 使用标准命名空间避免每次使用标准库函数时都需要加 std:: 前缀usingnamespacestd;// 定义宏 int 为 long long以便处理大整数#defineintlonglong// 定义全局字符串变量 s用于存储输入的表达式string s;// 定义两个栈// st_n用于存储操作数数字// st_c用于存储操作符如 , -, *, /stackintst_n;stackcharst_c;// 主函数程序的入口点使用 signed 作为返回类型以匹配宏定义的 int 为 long longsignedmain(){// 读取输入的表达式使用 getline 读取整行包括可能的空格// cin s; // 原始注释掉的代码使用 getline 替代以读取整行getline(cin,s);// 移除字符串 s 中的所有空格以便处理连续的数字和操作符s.erase(remove(s.begin(),s.end(), ),s.end());// 获取处理后字符串 s 的长度intlss.size();// 初始化变量 t用于临时存储当前读取的数字intt0;// 循环遍历字符串 s 的每一个字符包括一个额外的位置以处理结尾for(inti0;ils;i){// 如果当前字符是数字则将其转换为整数并累加到 t 中if(isdigit(s[i])){tt*10s[i]-0;}else{// 如果当前字符不是数字即操作符或字符串结尾则处理栈中的操作符// 如果操作符栈 st_c 不为空并且栈顶操作符是 *则进行乘法运算if(!st_c.empty()st_c.top()*){tst_n.top()*t;st_n.pop();// 弹出栈顶的操作数st_c.pop();// 弹出栈顶的操作符 *}// 如果操作符栈 st_c 不为空并且栈顶操作符是 /则进行除法运算elseif(!st_c.empty()st_c.top()/){tst_n.top()/t;st_n.pop();// 弹出栈顶的操作数st_c.pop();// 弹出栈顶的操作符 /}// 将当前计算结果 t 压入操作数栈 st_nst_n.push(t);// 重置临时变量 t 为 0准备读取下一个数字t0;// 如果当前字符是操作符、-、*、/则将其压入操作符栈 st_cif(s[i]||s[i]-||s[i]*||s[i]/)st_c.push(s[i]);}}// 定义两个临时栈用于重新组织和处理操作数与操作符stackinttemp_nums;stackchartemp_ops;// 将操作数栈 st_n 中的所有元素弹出并压入临时栈 temp_nums实现逆序while(!st_n.empty()){temp_nums.push(st_n.top());st_n.pop();}// 将操作符栈 st_c 中的所有元素弹出并压入临时栈 temp_ops实现逆序while(!st_c.empty()){temp_ops.push(st_c.top());st_c.pop();}// 循环处理临时操作符栈 temp_ops 中的所有操作符while(!temp_ops.empty()){// 弹出临时操作数栈 temp_nums 的栈顶元素作为操作数 aintatemp_nums.top();temp_nums.pop();// 弹出临时操作数栈 temp_nums 的栈顶元素作为操作数 bintbtemp_nums.top();temp_nums.pop();// 根据临时操作符栈 temp_ops 的栈顶操作符进行相应的运算if(temp_ops.top()){// 如果操作符是 则将操作数 b 和 a 相加并将结果压入 temp_numstemp_nums.push(ab);}else{// 如果操作符不是 即 -则将操作数 b 和 a 相减并将结果压入 temp_numstemp_nums.push(a-b);}// 弹出临时操作符栈 temp_ops 的栈顶操作符temp_ops.pop();}// 输出最终的计算结果即临时操作数栈 temp_nums 的栈顶元素couttemp_nums.top();// 程序正常结束返回 0return0;}【运行结果】23*4-10/61/2*4 13

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询