题目:
分析:先暴力看看。T了
#include<bits/stdc++.h>
using namespace std;
string s;
int main()
{
string st;
getline(cin,st);
stringstream ss(st);
ss>>s;
long long m;
ss>>m;
while(1)
{
if(s.size()>=m) break;
string s2=s.substr(0,s.size()-1);
s=s+s[s.size()-1];
s=s+s2;
}
cout<<s[m-1];
}
新思路踊跃到大脑,按规律缩小数字。很好,很棒。
#include<bits/stdc++.h>
using namespace std;
string s;
int main()
{
string st;
getline(cin,st);
stringstream ss(st);
ss>>s;
long long m;
ss>>m;
long long n=s.size();
while(1)
{
if(n>=m) break;
n=n*2;
}
while(1)
{
if(n==s.size())
{
cout<<s[m-1];
return 0;
}
if(m==(n/2)+1) {
m=n/2;
n=n/2;
continue;
}
n=n/2;
m=m-n-1;
while(1)
{
if(n==s.size())
{
cout<<s[m-1];
return 0;
}
if(n/2>m) n=n/2;
else break;
}
}
}