- Problem Description:测试地址
这是乙级的一道题:1084——外观数列,直接放代码吧!
两种代码的解题思路是一样的,不同的是代码1用字符串来写,代码2直接用整型来写;
AC代码1:
#include<iostream>
using namespace std;
int main()
{
string s;
int n,k;
cin>>s>>n;
for(int i=1;i<n;i++)
{
string t;
for(int j=0;j<s.length();j=k)
{
for(k=j;k<s.length()&&s[k]==s[j];k++);
t+=s[j]+to_string(k-j);
}
s=t;
}
cout<<s;
return 0;
}
AC代码2:
#include<iostream>
#include<vector>
using namespace std;
int main(){
int n, m, t;
cin >> n >> m;
vector<int> a, b;
if(m == 1){
cout << n;
}
else if(m == 2){
cout << n << 1;
}
else{
a.push_back(n);
a.push_back(1);
for(int i = 3; i <= m; i++){
b.clear();
for(int j = 0; j < a.size(); j++){
t = 1;
while(j<a.size()-1 && a[j] == a[j+1]){
t++;
j++;
}
b.push_back(a[j]);
b.push_back(t);
}
a = b;
}
}
for(int i = 0; i < a.size(); i++){
cout << a[i];
}
return 0;
}