Du har ret der manglede en else
her er implementationen i js
<script>
function str(i){
text=new Array();
a=0;
while(i>0){
i--
if(a==0){
for(j=0;j<text.length;j++){
text[j]='a';
}
text.push("a");
a=text.length;
}else{
j=text.length-1;
while(j>=0){
if(text[j]=="a"){
a--;
text[j]="b"
break;
}else{
a++;
text[j]="a";
}
j--;
}
}
}
return text.toString().replace(/,/g,'');
}
for(i=1;i<20;i++){
document.write("<br>i="+i+"->"+str(i));
}
</script>
implementeret som et array fordi at det er lettere i js.