SDUT 算法训练赛 B - Reversing Encryption(string-Reverse)


#include<bits/stdc++.h>
using namespace std;
int n,k,t[150];
char a[110],temp;
int main()
{
    int m=0;
    cin>>n;
    for(int i=1; i<=n; i++)
        cin>>a[i];
    for(int i=2; i<=n; i++)
    {
        if(n%i==0)
        {
            t[m++]=i;
        }
    }
    for(int i=0; i<m; i++)
        for(int j=1; j<=t[i]/2; j++)
        {
            temp=a[j];
            a[j]=a[t[i]-j+1];
            a[t[i]-j+1]=temp;
        }
    for(int i=1; i<=n; i++)
        cout<<a[i];
    cout<<endl;

    return 0;

}

#include<bits/stdc++.h>
using namespace std;
int n,k,t[150];
string a;
int main()
{
    int m=0;
    cin>>n>>a;
    for(int i=2; i<=n; i++)
    {
        if(n%i==0)
        {
            t[m++]=i;
        }
    }
    for(int i=0; i<m; i++)
        reverse(a.begin(),a.begin()+t[i]);
    cout<<a<<endl;
    return 0;
}

猜你喜欢

转载自blog.csdn.net/beposit/article/details/80905902