I 我的矩形
在读取数字的时候同时输出,输出数量为y的倍数时输出回车即可。
代码:
#include<stdio.h>
int main()
{
int n,x,y;
scanf("%d%d%d",&n,&x,&y);
for(int i=1;i<=n;i++)
{
int x;
scanf("%d",&x);
printf("%05d ",x);
if(i%y==0)printf("\n");
}
return 0;
}
#include<bits/stdc++.h>
using namespace std;
int main()
{
ios::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
int n,x,y;
cin>>n>>x>>y;
for(int i=1;i<=n;i++)
{
int x;
cin>>x;
cout<<setw(5) <<setfill('0')<<x<<" ";
if(i%y==0)cout<<endl;
}
return 0;
}
J 堆栈的奇妙世界
按照题目描述进行操作即可, 注意记录数列的长度变化。
#include <stdio.h>
int a[10005], idx;
int main()
{
int n;
scanf("%d", &n);
for (int i = 0; i < n; i++) {
int op;
scanf("%d", &op);
if (op == 1) {
a[idx] = 1;
idx++;
} else if (op == 2) {
a[idx] = a[idx - 1];
idx++;
} else {
a[idx - 2] += a[idx - 1];
idx--;
}
}
for (int i = 0; i < idx; i++)
printf("%d ", a[i]);
return 0;
}
#include<bits/stdc++.h>
using namespace std;
const int N = 1e5 + 10, M = 20, mod = 998244353;
int main()
{
stack<int> sk;
int n;
cin >> n;
while(n--)
{
int x;
cin >> x;
if(x==1)
sk.push(1);
else if(x==2)
sk.push(sk.top());
else
{
int h = sk.top();
sk.pop();
h += sk.top();
sk.pop();
sk.push(h);
}
}
vector<int> v;
while(!sk.empty())
{
v.push_back(sk.top());
sk.pop();
}
reverse(v.begin(), v.end());
for(auto it:v)
cout << it << " ";
return 0;
}