汕头论坛网站建设,做百度网站需不需要备案吗,株洲企业seo优化,微网站开发入门#x1f30f;博客主页#xff1a;PH_modest的博客主页 #x1f6a9;当前专栏#xff1a;每日一题 #x1f48c;其他专栏#xff1a; #x1f534; 每日反刍 #x1f7e1; C跬步积累 #x1f7e2; C语言跬步积累 #x1f308;座右铭#xff1a;广积粮#xff0c;缓称… 博客主页PH_modest的博客主页 当前专栏每日一题 其他专栏 每日反刍 C跬步积累 C语言跬步积累 座右铭广积粮缓称王 一.题目描述 题目大意 题目链接 B. Maximum RoundingCodeforces Round 891 (Div. 3) 二.思路分析 先从前往后找大于等于5的数字找到之后将这一位以及后面的数字全部置为0这一位前面的数1再从后往前遍历一遍看是否有大于等于5的数字有的话置为0这一位前面的数1 注意点 如果遇到第一位的数字大于等于5他前面没有数字那我们该怎么办我这里使用的是string定义了一个s只需要s‘0’s这样就可以解决以上问题了但同时需要注意下标否则会弄巧成拙具体的请看代码。 三.代码展示
#includeiostream
#includealgorithm
#includecmath
#includemap
#includevector
#includecstring
#define int long long
using namespace std;void solve()
{string s;cins;s0s;int pos0;int flag0;for(int i1;is.size();i){if(s[i]5){posi;s[i-1];flag1;break;}}if(flag1){for(int ipos;is.size();i){s[i]0;}}for(int is.size()-1;i0;i--){if(s[i]5){s[i]0;s[i-1];}}if(s[0]!0){couts[0];}for(int i1;is.size();i){couts[i];}cout\n;
}signed main()
{ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);int t;cint;while(t--){solve();}
}
最后 每日一题系列旨在养成刷题的习惯所以对代码的解释并不会特别详细但足够引导大家写出来选的题目都不会特别难但也不是特别简单比较考验大家的基础和应用能力我希望能够将这个系列一直写下去也希望大家能够和我一起坚持每天写代码。 之后每个星期都会不定期更新codeforces和atcoder上的题目想要学习算法的友友们千万别错过了有什么疑问欢迎大家在评论区留言或者私信博主 在这里送大家一句话广积粮缓称王