F - Rolling table HDU - 2135

本文介绍了一个ACM/ICPC竞赛背景下的单词表旋转问题,通过输入单词表和旋转次数,实现了单词表的顺时针或逆时针旋转,并提供了完整的C++实现代码,有助于理解二维数组旋转的算法思路。

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

After the 32nd ACM/ICPC regional contest, Wiskey is beginning to prepare for CET-6. He has an English words table and read it every morning.
One day, Wiskey's chum wants to play a joke on him. He rolling the table, and tell Wiskey how many time he rotated. Rotate 90 degrees clockwise or count-clockwise each time.
The table has n*n grids. Your task is tell Wiskey the final status of the table.

InputEach line will contain two number.
The first is postive integer n (0 < n <= 10).
The seconed is signed 32-bit integer m.
if m is postive, it represent rotate clockwise m times, else it represent rotate count-clockwise -m times.
Following n lines. Every line contain n characters.
OutputOutput the n*n grids of the final status.
Sample Input

3 2
123
456
789
3 -1
123
456
789

Sample Output

987
654
321
369
258
147

把数据放在矩阵里然后直接改变输出方向就可以了、

#include<iostream>
using namespace std;
int main()
{
char num[11][11];
int n, m;
while (cin >> n >> m)
{
for (int i = 1; i <= n;i++)
for (int j = 1; j <= n; j++) cin >> num[i][j];
m %= 4;
if (m < 0) m = 4 + m;
if (m == 0)
{
for (int i = 1; i <= n; i++)
{
for (int j = 1; j <= n; j++)
{
cout << num[i][j];
}
cout << endl;
}
}
else if (m == 1)
{
for (int i = 1; i <= n; i++)
{
for (int j = n; j >= 1; j--)
{
cout << num[j][i];
}
cout << endl;
}
}
else if (m == 2)
{
for (int i = n; i >= 1; i--)
{
for (int j = n; j >= 1; j--)
{
cout << num[i][j];
}
cout << endl;
}
}
else if (m == 3)
{
for (int i = n; i >= 1; i--)
{
for (int j = 1; j <= n; j++)
{
cout << num[j][i];
}
cout << endl;
}
}
}
return 0;
}


我觉得这个题可以练习一下找bug的技巧。将它的转几次改为把每一次都输出,来寻找bug更好

转载于:https://www.cnblogs.com/damaoranran/p/8778270.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值