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;
}