AOJ 0506 - String

今年は去年より多く解きたい.
ループ構造が入り交じっているコード.

#include <iostream>
#include <sstream>

std::string itos(int);

int main(){
	int n;
	while(std::cin >> n, n){
		std::string s, res;
		std::cin >> s;
		while(n--){
			res = "";
			for(int i=0;i<s.size();i++){
				int c = 1;
				for(int j=1;i+j<s.size();j++){
					if(s[i] != s[i+j])break;
					c++;
				}
				res += itos(c) + s[i];
				i += c - 1;
			}
			s = res;
		}
		std::cout << res << std::endl;
	}
}

std::string itos(int i){
	std::stringstream ss;
	ss << i;
	return ss.str();
}