php - Soalan temu bual, tukar nombor dalam lingkungan 100 ke dalam bahasa Cina..
PHP中文网
PHP中文网 2017-06-14 10:50:09
0
6
909

Cara menukar nombor dengan cepat kepada teks
Sebagai contoh, 1 => satu, 2=> dua, ..., 15=》lima belas
Apa yang sedang saya fikirkan ialah untuk menyimpan aksara Cina ke dalam tatasusunan

$arr = ['一','二','三','四','五','六','七','八','九','十'];

Tetapi ini terlalu menyusahkan Bagaimana untuk menukar nombor input ke dalam bahasa Cina?

Keputusan akhir adalah seperti berikut:
Input 12
Output

一二三四五六七八九十十一十二
PHP中文网
PHP中文网

认证高级PHP讲师

membalas semua (6)
淡淡烟草味
 '一', '2' => '二', '3' => '三', '4' => '四', '5' => '五', '6' => '六', '7' => '七', '8' => '八', '9' => '九', '10' => '十', ); if($number>10){ //倍数 $bs = (int)($number/10); //余数 $ys = $number%10; echo $arr[$bs].$arr[10].$arr[$ys]; }else{ echo $arr[$number]; }
    过去多啦不再A梦

    Jika anda boleh menerangkan proses penukaran digital dengan jelas dalam perkataan, maka menulis kod ialah proses terjemahan.

    Algoritma sebenarnya hanyalah logik perniagaan dengan logik perniagaan yang sangat pelik Fokusnya adalah untuk menganalisislogik perniagaan

    ini

    Anda boleh menukar angka Arab kepada angka Cina walaupun sebelum anda menamatkan sekolah rendah Anda mesti mempunyai kaedah dalam fikiran anda untuk menyelesaikan proses penukaran ini. Jadi fokus penyiasatan di sini ialahabstraksiproses masalah. Untuk menjadi abstrak dan tepat, anda mesti terlebih dahulu mempunyai analisis dan pemahaman yang komprehensif tentang masalah itu sendiri dan mengetahui peraturannya. Dalam proses penukaran digital, bila 0 dipanggil sepuluh dan bila dipanggil sifar. Proses ini sangat semula jadi dalam fikiran bahawa ia masih memerlukan sejumlah keupayaan untuk menganalisis keadaannya dan mengetahui peraturannya.

    Saya mengesyorkan artikel ini Analisis pada permulaan artikel adalah proses abstraksi, yang sangat penting untuk pengaturcaraan

      漂亮男人
      $setnumber = 99; $chiNum = array('十','一','二','三','四','五','六','七','八','九','十'); if($setnumber < 100 && $setnumber >= 1) { for($i = 1;$i<=$setnumber;$i++) { $setstrnumber = (string)$i; $count = strlen($setstrnumber); if($count == 1) { echo $chiNum[$i]."
      "; } else { $setchinum = ''; if($setstrnumber[0] != 1) { $setchinum .= $chiNum[$setstrnumber[0]]; } $setchinum .= $chiNum[0]; if(intval($setstrnumber[1]) != 0) { $setchinum .= $chiNum[$setstrnumber[1]]; } echo $setchinum."
      "; } } }
        Ty80

        Cara menukar nombor dengan cepat kepada teks
        Sebagai contoh, 1 => satu, 2=> dua, ..., 15=》lima belas
        Apa yang sedang saya fikirkan ialah untuk menyimpan aksara Cina ke dalam tatasusunan

        $arr = ['一','二','三','四','五','六','七','八','九','十'];

        Tetapi ini terlalu menyusahkan Bagaimana untuk menukar nombor input ke dalam bahasa Cina?

        Keputusan akhir adalah seperti berikut:
        Input 12
        Output

        一二三四五六七八九十十一十二

        Berikut adalah pelaksanaanJavaScript

        Perhatikan perwakilan berangka aksara Cina

        Aksara Cina secara eksplisit menyatakan susunan nombor Contohnya,一百零一mempunyai susunan ratusan (seratus, seratus, sepuluh, juta)

        .

        2 >>>> Dua 2>>>> 二个
        10>>>> 一十>>>> 10 >>>> > kod> >>>>

        16>>>>一十六个>>>>十六

        105>>>>一百零十五个>>>>一百零五

        1024>>>>一千零百二十四个>>>>一千零二十四

        Anda boleh melihat bahawa perwakilannya boleh dilihat sebagai bentuk值 + 阶.

        Selain itu, apabila syarat berikut dipenuhi需要省略阶或者值

        10 sepadan dengan 十十 dan ditulis sebagai 10对应一十写作
        110对应一百一十零个写作一百一十 110 sepadan dengan seratus dan sepuluh code> Menulis Seratus Sepuluh
        .... Tunggu

        Berdasarkan pemikiran di atas, idea pengaturcaraan yang perlu dilukis adalah seperti berikut:

        1. Masukkan nomborn

        2. Petan映射到一个数组tokens上。 比如8变成["八"],101变成["一", "零", "一"]kepada tatasusunan token . Contohnya,8menjadi["八"],101menjadi["一", "zero", "一"]

        3. Tambah tahap101变成["一", "百", "十", "零", "一", "个"]

        4. Tapis, seperti Seratus satu ke dalam bentuk termudah一百十零一个变成最简形式一百零一

        Fungsi alat

        // 数字到汉字的映射表 var mapHans = ['零', '一','二','三','四','五','六','七','八','九','十']; // 用 n 得到汉字 输入 0 得到 '零' var getHans = n => mapHans[n]; // 数字长度到汉字数级的映射表 var mul = ['十', '百', '千', '万'] // ['i', 'love', 'my', 'wife'] >>>> ilovemywife var arr2str = arr => arr.join(''); // 输入 5 产生 [1, 2, 3, 4, 5] var arrGenerator = n => ( new Array(n).fill(0).map((e, idx) => idx + 1) )

        Tercapai

        Pertama dilaksanakan大于 10数字映射到汉字的数制pada

        Sebagai contoh, masukkan101untuk kembali101返回一百零一

        Ia akan menjadi lebih pantas untuk menggunakan fungsi alat yang ditulis di atas

        var toHans = n => { // 比如输入 101 返回 ['一', '零', '一'] var tokens = n.toString().split('').map(getHans); // 对数阶的处理 如果上一步得到 ['一', '零', '一'] // 那么at就是 ['百', '十'] var at = mul.slice(0, tokens.length - 1).reverse(); // 归约 return tokens.reduce((acc, cur) => { acc.push(cur); acc.push( at.shift() ) return acc; // 这个reduce将会把 tokens 和 at 耦合在一块 // ['一', '零', '一'] 和 ['百', '十'] 耦合就是: // ['一', '百', '零', '十', '一', undefined] // 下一步的两个 filter 就是要剔除多余的项 }, []).filter(e => e !== undefined).filter((e, idx, its) => { if (e === '零'){ if (idx === its.length - 1) { // 针对 10 >>>> [一 十 零] 这种情况 return false; } else { // 针对 101 >>>> [一 百 零 十 一] 这种情况 its[idx + 1] = null; } } else if (idx === 0 && e === '一' && its[idx + 1] === '十'){ // 针对 12 >>>> [一 十 二] 这种情况 return false; } // 下面还可以再添加。。 不过应该没了。 return e; }); };

        Ujian mudah Ujian penukaran24681632... 成十六三十二...

        // 2 的 n 次方 var twotwotwo = n => ( new Array(n).fill(2).reduce((acc, cur, idx) => { acc = acc * cur; return acc; }, 1) ) // 打印机 var logger = (item, idx) => console.log(`第 ${idx + 1} 个:`, item); // test code function test4toHans(n) { var res = arrGenerator(n).map(twotwotwo).map(toHans).map(arr2str); res.forEach(logger); }

        Melintasi nombor

        ....dari 1 hingga n

        var main = n => { var numbers = arrGenerator(n); return numbers.map(toHans).map(arr2str); }

        Ujian


          过去多啦不再A梦

          https://github.com/wilon/php-...

          Nombor PHP ditukar kepada huraian aksara Cina, dan RMB ditulis dengan huruf besar

            伊谢尔伦

            Menyokong ratusan bilion nombor Mengubah suai tatasusunan ws boleh dikembangkan secara tidak terhingga Mengubah suai tatasusunan cns kepada Cina Tradisional boleh digunakan untuk menggunakan modal RMB

             $value) $str .= $ws[$key].$cns[$value]; $temp = '';//反转字符串 for($i = strlen($str)-1; $i>=0; $i--) $temp .= mb_substr($str,$i,1,'utf-8'); return $temp; } echo IntToString(231231251237); ////二千三百一十二亿三千一百二十五万一千二百三十七
            Dilampirkan ideanya

            /a/11...

              Muat turun terkini
              Lagi>
              kesan web
              Kod sumber laman web
              Bahan laman web
              Templat hujung hadapan
              Tentang kita Penafian Sitemap
              Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!