幸運數字轉換 51Nod - 1637
阿新 • • 發佈:2018-11-23
https://www.51nod.com/Challenge/Problem.html#!#problemId=1637
顯然最後會進入一個循化節 即447<->477之間不斷轉換 第一個4在奇數位置
#include <bits/stdc++.h> using namespace std; const int maxn=1e5+10; int n,k; char ch[maxn]; int main() { int i,p; scanf("%d%d",&n,&k); scanf("%s",ch+1); p=-1; for(i=1;i+1<=n&&k>0;i++){ if(ch[i]=='4'&&ch[i+1]=='7'){ k--; if(i%2) ch[i+1]='4'; else{ ch[i]='7'; if(i-1>=1&&ch[i-1]=='4'){ p=i; break; } } } } if(p==-1) printf("%s\n",ch+1); else{ if(k%2){ if(ch[p]=='4') ch[p]='7'; else ch[p]='4'; } printf("%s\n",ch+1); } return 0; }