2.25 做题

cpp 复制代码
#include<iostream>
#include<vector>
using namespace std;
#define LL long long;
int main()
{
	int row, col; cin >> row >> col;
	vector<vector<int>>arr(row + 5, vector<int>(col + 5));
	for (int i = 0; i < row; i++)
	{
		for (int j = 0; j < col; j++)
		{
			cin >> arr[i][j];
		}
	}
	int top = 0;
	int bottom = row-1;
	int left = 0;
	int right = col - 1;
	while (top <= bottom && left <= right)
	{
		for (int i = left; i <= right; i++)
		{
			cout << arr[top][i] << endl;
		}
		top++;
		for (int i = top; i <= bottom; i++)
		{
			cout << arr[i][right] << endl;
		}
		right--;
		if (top <= bottom)
		{
			for (int i = right; i >= left; i--)
			{
				cout << arr[bottom][i] << endl;
			}
		}
		bottom--;
		if (left <= right)
		{
			for (int i = bottom; i >= top; i--)
			{
				cout << arr[i][left] << endl;
			}
		}
		left++;
	}
	return 0;
}

思路:环形输出,四个for循环,第一个for是上面的从左到右,第二个是右边从上到下,第三个是底下从右到左,第四个是左边的从下到上,一个圈循环完毕,while里面的条件是保证至少有一列和一行,但是前两个for之后,行和列都减少了一个,不能保证还有,所以后两个循环要加if条件

cpp 复制代码
#include <iostream>
#include <string>
#include <vector>
using namespace std;
const int MOD = 10000;
int main() {
    string s;
    cin >> s;
    vector<long long> st;
    long long num = 0;
    char last_op = '+';
    for (int i = 0; i <= s.size(); ++i) {
        if (i < s.size() && isdigit(s[i])) {
            num = num * 10 + (s[i] - '0');
            num %= MOD;
        } else {
            if (last_op == '+') {
                st.push_back(num);
            } else if (last_op == '*') {
                long long top = st.back();
                st.pop_back();
                st.push_back((top * num) % MOD);
            }
            num = 0;
            if (i < s.size()) {
                last_op = s[i];
            }
        }
    }
    long long ans = 0;
    for (int i = 0; i < st.size(); ++i) {
        ans = (ans + st[i]) % MOD;
    }
    cout << ans << endl;
    return 0;
}

就是先把所有数字放进栈中,如果有乘法,先乘后入栈,入栈后全部遍历相加,最后取模

相关推荐
踮起脚看烟花1 分钟前
chapter10_泛型算法
c++·算法
笨笨饿1 分钟前
# 52_浅谈为什么工程基本进入复数域?
linux·服务器·c语言·数据结构·人工智能·算法·学习方法
Code-keys2 分钟前
ADSP/ARM 性能/稳定性排查专栏总述
arm开发·算法·边缘计算·dsp开发
山栀shanzhi5 分钟前
C++四大常见排序对比
c++·算法·排序算法
云栖梦泽10 分钟前
Linux内核与驱动:8.ioctl驱动基础
linux·c++
Allen_LVyingbo19 分钟前
量子测量三部曲:投影测量、POVM 与坍缩之谜—从形式主义到物理图像
算法·性能优化·健康医疗·量子计算·空间计算
云栖梦泽22 分钟前
Linux内核与驱动:7.从应用层 lseek() 到驱动层 .llseek,Linux 字符设备偏移控制详解
linux·c++
qiqsevenqiqiqiqi24 分钟前
位运算 计算
算法
steins_甲乙29 分钟前
从0做一个小型内存泄露检测器(2): elf文件的动态链接
c++
甄心爱学习36 分钟前
【最优化】1-6章习题
人工智能·算法