思维陷阱
原以为
9 6
123456789
的答案应该是
124000124
但其实应该是
123457123
#include<bits/stdc++.h>
using namespace std;
//省略一些宏
//---------------------
#define MAXN 200005
//---------------------
ll n,k;
string s;
int main(){
cin >> n >> k >> s;
string ss =s;
FOR(i,k,n) ss[i] = s[i%k];
if(ss<s){
ll l = k-1;
while(ss[l]=='9') ss[l--]='0';
ss[l]++;
}
PRT(n); REP(i,n) printf("%c",ss[i%k]); ENTER;
return 0;
}
本文通过一个具体的编程问题,揭示了思维陷阱如何误导我们得到错误的解决方案。原以为96的答案应该是124000124,但实际上正确答案为123457123。文章深入探讨了这一问题的解决过程,并分享了一段优化后的代码实现。

被折叠的 条评论
为什么被折叠?



