不错不错,隐形围棋.. -,-你的记数器是那个"六千四百三十二"?怎么做成中文的?怎么计算的?把代码share一下让我look look ?

解决方案 »

  1.   

    现在是六千四百三十三了,谢谢 foolfish(呆鱼), 马上给分.
    数字翻中文是自己一个偷工减料的代码, 好像超过200亿就不灵了 :)
    function NumberToChinese($num)
    {
    $DanWei=array("","十","百","千");
    $Wan="万";
    $Yi="亿";
    $Fu="负";
    $Liang="两";
    $ShuZi=array("零","一","二","三","四","五","六","七","八","九");
    //print("dan wei [3]=$DanWei[3]");
    $strres=""; if($num==0)return $ShuZi[0]; //integer i,j,n,count;
    $n=$num<0 ? - $num :$num;
    $count=(integer)log10($n)+1;
    //print("count=".$count);
    // for($i=1;;$i++)
    // {
    // if((integer)($n/pow(10,$i))==0)
    // {
    // $count = $i;
    // break;
    // }
    // }
    //TRACE("count= %d \n",count); //$have0 ;
    //$Enable0 ;
    $Enable0= false;
    $have0= false;
    if($count>=9)
    {
    if(GetNumber(n,9+3)==0 && 9+3<$count) 
    {
    $Enable0=true;
    $have0=true;
    }
    for($j=3;$j>=0;$j--)
    {
    if(GetNumber($n,9+$j)!=0)
    {
    if($Enable0&&$have0)
    {
    $strres=$strres.$ShuZi[0];
    }
    if(9+$j!=10|GetNumber($n,9+$j)!=1||!$strres=="")
    {
    if(GetNumber($n,9+$j)==2&&$strres==""&&9+$j!=10)
    $strres=$strres.$Liang;
    else
    $strres=$strres.$ShuZi[GetNumber($n,9+$j)];
    }
    $strres=$strres.$DanWei[$j];
    $have0=false;
    $Enable0=true;
    }
    else
    {
    if(!$have0)
    {
    $have0=true;
    }
    }
    }
    $strres=$strres.$Yi;
    }
    $passwan=true; 
    if($count>=5)
    {
    //Enable0= FALSE;
    //have0= FALSE;
    if(GetNumber($n,1+7)==0 && 1+7< $count) 
    {
    $Enable0=true;
    $have0=true;
    }
    for($j=7;$j>=4;$j--)
    {
    if(GetNumber($n,1+$j)!=0)
    {
    $passwan=false;
    if($Enable0&&$have0)
    {
    $strres=$strres.$ShuZi[0];
    }
    if(1+$j!=6||GetNumber($n,1+$j)!=1||!$strres=="")
    {
    if(GetNumber($n,1+$j)==2&&$strres==""&&1+$j!=6)
    $strres=$strres.$Liang;
    else
    $strres=$strres.$ShuZi[GetNumber($n,1+$j)];
    }
    $strres=$strres.$DanWei[$j-4];
    $have0=false;
    $Enable0=true;
    }
    else
    {
    if(!$have0)
    {
    $have0=true;
    }
    }
    }
    if(!$passwan)$strres=$strres.$Wan;
    }
    //have0= FALSE;
    if(GetNumber($n,1+3)==0 && 1+3< $count) 
    {
    $Enable0=true;
    $have0=true;
    }
    for($j=3;$j>=0;$j--)
    {
    //print("n=".$n." j=".$j." ->".(GetNumber($n,1+$j)."\n"));
    if(GetNumber($n,1+$j)!=0)
    {
    if($Enable0&&$have0)
    {
    $strres=$strres.$ShuZi[0];
    }
    if(1+$j!=2||GetNumber($n,1+$j)!=1||$strres!="")
    {
    if(GetNumber($n,1+$j)==2&&$strres==""&&1+$j>2)
    $strres=$strres.$Liang;
    else
    $strres=$strres.$ShuZi[GetNumber($n,1+$j)];
    }
    //print("$strres=$strres.$DanWei[$j]");
    $strres=$strres.$DanWei[$j];
    $have0=false;
    $Enable0=true;
    }
    else
    {
    if(!$have0)
    {
    $have0=true;
    }
    }
    }
    if( $num<0 )$strres=$Fu.$strres;
    return $strres;
    }
      

  2.   

    收到
    谢谢我copy回去研究一下.