function print(start,count)
{
var s='';
for (var i=0;i<count;i++)
{
s+=getchar(start+i)+(i==count-1?'':',');
}
alert(s);

}
function getchar(n)
{
var str="ABCDEFGHIJKLMNOPQRSTUVWXYZ";
if (n>26)
{
var rev='';
rev+=getchar(n/26-1,1);
rev+=getchar(n%26-1,1);
return rev;
}
else
return str.substr(n-1,1);
}

解决方案 »

  1.   

    A,B,C,...,Z,AA,AB,AC,....AZ,BA,BB,...,ZZ,AAA,AAB,AAC,...,AAZ,ABA,ABB,ABC,...ABZ,....AZZ.... 
    是什么?一个字符串吗?这个有什么规律可循吗?
    表达的不明白呀,如果说字符串是既定的,在print函数中,直接调用string的substring或者slice不就取出来了吗?如果说字符串只给了规律,需要自己程序实现,那这个题目 就是考你的排列了。另外,如果说有规律的话,我没看明白。
    先是A-Z,然后是 "A" + (A -Z),之后,是"B" + (A -Z),再然后就成了“AA” +(A-Z)了?只循环AB吗??
      

  2.   

    这个字符串是这个规律
    A-Z
    A+(A-Z)
    B+(A-Z)
    .
    .
    Z+(A-Z)
    AA+(A-Z)
    AB+(A-Z)
    .
    .
    AZ+(A-Z)
      

  3.   

    function print(start,count)
    {
     var aa="A,B,C,D,EF,GHI,JKL,MN,ASDDS,SWE,AAS,FFA";
     var a=aa.split(",")[count+start-2];//表示count
     if(start-1>=0)
     {
     var d=aa.split(",")[start-1];//表示起始start
     var b=aa.split(a)[0];
     var c=b.split(d)[1];
     var e=d+c+a;
     alert(e);
     }
     else
     {
     var d=aa.split(",")[0];
     var b=aa.split(a)[0];
     var c=b.split(d+",")[1];
     var e=d+c+a;
     alert(e);
     }
    }
      </script> 
      </head>   
      <body>
      <input type="button" value="确定" onclick="print(2,3)"/>
    </body>
    </html>
    你需要的结果!!!!!!!!!!!!!!!!!!!!!
      

  4.   

    function print(start,count)
    {
     var aa="A,B,C,D,EF,GHI,JKL,MN,ASDDS,SWE,AAS,FFA";
     if(count+start-2>=0){
     var a=aa.split(",")[count+start-2];//表示count
     if(start-1>=0)
     {
     var d=aa.split(",")[start-1];//表示起始start
     var b=aa.split(a)[0];
     var c=b.split(d)[1];
     var e=d+c+a;
     alert(e);
     }
     else
     {
     var d=aa.split(",")[0];
     var b=aa.split(a)[0];
     var c=b.split(d+",")[1];
     var e=d+c+a;
     alert(e);
     }
     }
     else if(count+start==0)
     {
      alert("");
     }
     else
     {
        var a=aa.split(",")[0];
       alert(a);
     }
    }
      </script> 
      </head>   
      <body>
      <input type="button" value="确定" onclick="print(3,3)"/>
    </body>
    </html>
    添加进去print(0,0)和print(0,1)判断
      

  5.   


    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
    <title>无标题文档</title>
    </head>
    <body>
    <script type="text/javascript">
    function print(start,count)
    {
    var out = new Array();
    for(var i=0;i<count;i++)
    out.push( getStr(start+i) );
    alert(out.join(','));
    }//其实就是是10进制转2进制一样,只不过这里是26进制
    function getStr(num)
    {
    var str="ABCDEFGHIJKLMNOPQRSTUVWXYZ";
    var s='';
    while(num>=26)
    {
    var index = num%26-1;
    s = str.substr( index,1) + s;
    num = parseInt( num/26, 10 );
    }
    s = str.substr(num-1,1) + s;
    return s;
    }
    print(2,3);
    </script>
    </body>
    </html>
      

  6.   

      <script type="text/javascript">
    function print(start,count)
    {
     var aa="A,B,C,D,EF,GHI,JKL,MN,ASDDS,SWE,AAS,FFA";
     if(start==0&&count!=0){  
      var a=aa.split(",")[count-1];
      var b=aa.split(a)[0];
      var e=b+a;
      alert(e);
      }
     else if(start!=0&&count==0){
      var a=aa.split(",")[start-1];
      alert(a);
     }
     else if(count+start-2>=0){
     var a=aa.split(",")[count+start-2];//表示count
     if(start-1>=0)
     {
     var d=aa.split(",")[start-1];//表示起始start
     var b=aa.split(a)[0];
     var c=b.split(d)[1];
     var e=d+c+a;
     alert(e);
     }
     else
     {
     var d=aa.split(",")[0];
     var b=aa.split(a)[0];
     var c=b.split(d+",")[1];
     var e=d+c+a;
     alert(e);
     }
     }
     else if(count+start==0)
     {
      alert("");
     }
     else
     {
        var a=aa.split(",")[0];
       alert(a);
     }
    }
      </script> 
      </head>   
      <body>
      <input type="button" value="确定" onclick="print(0,5)"/>
    </body>
    </html>
    在完善!!!!!!!!
      

  7.   

    function print(start,count){
      var result="";
      for(var i=0;i<count;i++){
        result+=","+getStr(start+i);
      }
      if(result!="")result=result.substring(1);
      document.write(result);
    }
    function getStr(pos){
      var ss="ABCDEFGHIJKLMNOPQRSTUVWXYZ";
      if(pos<27)return ss.charAt(pos-1);
      var str="",tmp;
      while(pos!=0){
        tmp=pos%26;
        if(tmp==0)tmp=26;//========
        str=ss.charAt(tmp-1)+str;
        pos=Math.floor((pos-tmp)/26); 
      }
      return str;
    }
    print(2,10)
    document.write("<br/>")
    print(26,55)
    document.write("<br/>")
    print(24,20)
      

  8.   

    楼上的都不对,26-27,因该输出z,aa
    这是excel的命名规则,不是完全的26进制
    因为他没有状态0,假设a表示0的话,那么aa则代表00
    而如果a代表1,则没有a0这种状态,所以不是完整的26进制
    这也是它比较麻烦的地方。楼上的好多朋友都太自以为是了
    写出程序也不测试下就发上来
      

  9.   

    应该可以算是一个26进制 a代表1 z代表26
    aa代表26+1 az代表 26+26
    ...
    ......
      

  10.   

    更正一下1楼的:
    function prints(start,count)
    {
    var s='';
    for (var i=0;i<count;i++)
    {
    s+=getchar(start+i)+(i==count-1?'':',');
    }
    alert(s);

    }
    function getchar(n)
    {
    var str="ABCDEFGHIJKLMNOPQRSTUVWXYZ";
    if (n>26)
    {
    var rev='';
    var tm = parseInt(n/26);
    var ex=n%26;
    if (ex==0)
    {
    tm--;
    ex=26;
    }
    rev+=getchar(tm,1);
    rev+=getchar(ex,1);
    return rev;
    }
    else
    return str.substr(n-1,1);
    }
      

  11.   


    function print(start, count) {
        var r = "";
        if(start > 0) {
            for(var i = start; i < start + count; i++) {
                r += getChar(i) + ",";
            }
            r = r.substr(0, r.length - 1);
        }
        return r;
    }
    function getChar(m) {
        var str = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
        var r = "";
        if(m > str.length) {
            r += getChar(Math.floor((m - 1) / str.length));
            r += getChar((m - 1) % str.length + 1); 
        } else {
            r = str.substr(m - 1, 1);
        }
        return r;
    }
    其实1楼都已经到家门了...
      

  12.   

    凑热闹, 这个貌似不是简单的26进制, 不过也是一样, 只是用字母换着算..
    俺来另一种思路...<script type="text/javascript">
    /*<![CDATA[*/document.write( print(2, 1000).join('<br />,') );function print(start_i, len_i)
    {
      start_i = start_i || 1;
      
      var letter_s = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
      var map_s    = '0123456789abcdefghijklmnop';
      var result_a = [];  for(var i=0; i<len_i; i++)
      {
        var cur_i   = start_i+i-1;    
        var temp_s  = (cur_i).toString(26);
            
        if(cur_i<26)
        {            
          for(var i_=0, j_=temp_s.length; i_<j_; i_++)
          {
            var char_s  = temp_s.charAt(i_);        
            var pos_i   = map_s.indexOf(char_s);        
            result_a.push( letter_s.charAt(pos_i) )
          }
        }
        else
        {
          var s = '';
          for(var i_=0, j_=temp_s.length; i_<j_; i_++)
          {
            if(i_===j_-1)
            {
              var char_s  = temp_s.charAt(i_);        
              var pos_i   = map_s.indexOf(char_s);  
                  s += letter_s.charAt(pos_i);
            }
            else
            {
              var char_s = temp_s.charAt(i_);        
              var pos_i   = map_s.indexOf( char_s )-1;            
                  s+=letter_s.charAt(pos_i)
            }
          }      
          result_a.push( s )
        }
      }/* for(var i=0; i<len_i; i++) */
      return result_a;
    }/* function print(start_i, len_i) *//*]]>*/
    </script>
      

  13.   

    换种思路,深挖ECMA标准方法,照样解决问题.
    ==预览==】function strMake(nIndex)
    {// 返回按索引值nIndex生成的字符串元素
    this.idx26=nIndex.toString(26).toUpperCase();
    this.codeset='ABCDEFGHIJKLMNOPQRSTUVWXYZ';
    this.string='';
      for(var i=0;i<this.idx26.length;i++)
      {
    this.string+=(this.idx26.charAt(i).match(/\d/))?
    (this.idx26.length>1&&i<1)?this.codeset.charAt(parseInt(this.idx26.charAt(i))-1):this.codeset.charAt(this.idx26.charAt(i)):
    this.codeset.charAt(this.codeset.indexOf(this.idx26.charAt(i))+10);
      }
    return this.string;
    }function arrMake(nStart,nLength)
    {// 返回从起始值nStart开始,长度为nLength的数组
    this.array=new Array();
      for(var iIndex=nStart;iIndex<nStart+nLength;iIndex++)
      {
    this.array=this.array.concat(strMake(iIndex));
      }
    return this.array;
    } alert(arrMake(-10,20));
      

  14.   

    我老大写的一种
    <body>
    <script type="text/javascript">
    function print(start,end){
      var ss="ABCDEFGHIJKLMNOPQRSTUVWXYZ";
      var result="";
      for(var i=start;i<end;i++){
        temp = i; 
        var words ="";
        var remaind=0;
        while(temp>0) {  
    remaind =temp%26;  
    words=ss.charAt((remaind==0?26:remaind)-1) + words;  
    temp =(temp-(remaind==0?26:remaind))/26;  
    }
        result= result + " " + words;
      }
      return result;
    }document.write(print(82647,82652));
    document.write("<br>");
    document.write(print(1,152));
    </script>
    </body>