欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 文旅 > 游戏 > 【第16届蓝桥杯C++C组】--- 2025图形

【第16届蓝桥杯C++C组】--- 2025图形

2025/9/14 23:23:45 来源:https://blog.csdn.net/CJH20050707/article/details/147383994  浏览:    关键词:【第16届蓝桥杯C++C组】--- 2025图形

hello,小伙伴们,这是第16届蓝桥杯的第一道编程大题,我一开始拿到这道题目的时候,也想过很多方法,但是一直差了点意思,后面我换了一种思路,就巧妙地解决了这道题目,下面是我当时在考场的思路和方法,如果小伙伴们有更优更好的方法也可以分享分享~

我个人感觉这一届蓝桥杯考察的主要还是基础加一些巧妙地方法,前面的三道题目并不是很难,这道题目也还是考察 / 和 % 运算,我设置一个变量n = 5202,把2025倒着存储,这样每次%n就能拿到2025的第一位2,0, 2, 5,难点就是第二行开始,每行向左移动一个字符,下面就是我的代码,大家可以看看我是如何解决这个难点的~~

#include <iostream>
using namespace std;int n = 5202;
int tmp = 5202;//也保留一份 int h, w;int main()
{cin >> h >> w;for(int i = 1; i <= h; ++i){int k = i;//让k保留i while(k > 1)//当k>1时候,说明来到了第i+1行,那么我们每次要向左移动1位 {n /= 10;//向左移动一位 if(n == 0) n = tmp;//如果n == 0,我们就用tmp = n继续移动 k--;//如果k == 4,那么我们需要向左移动3位,用k来计算移动的位数 }for(int j = 1; j <= w; ++j){if(n == 0) n = tmp;cout << n % 10;n /= 10; }n = tmp;//这里有个细节,要让n重新回到2025,如果没有重新回到2025,那么n还是上一行的数据 cout << endl;}return 0;} 

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词