zoukankan      html  css  js  c++  java
  • 面试题17:打印从 1 到最大的 n 位数

    <?php
    header("content-type:text/html;charset=utf-8");
    /*
     * 输入数字 n,按顺序打印出从 1 到最大的 n 位十进制数。比如输入 3,则打印出 1、2、3 一直到最大的 3 位数即 999。 P114
     */
    function print1ToMaxOfNDigits($n){
        if($n<=0){
            return 0;
        }
        $length = $n;
        $number = array();
    //    $number[$length] = '';
        while (!increment($number,$length)){
            printNumber($number,$length);
        }
    
    }
    function increment(&$number,$length){
        $isOverflew = false;
        $nTakeOver = 0;
        for($i = $length-1;$i>=0;$i--){
            $nSum = $number[$i] + $nTakeOver ;
            if($i == $length - 1){
                $nSum ++;
            }
            if($nSum >= 10){
                if($i == 0){
                    $isOverflew = true;
                }
                else{
                    $nSum = $nSum - 10;
                    $nTakeOver = 1;
                    $number[$i] = strval($nSum);
                }
            }
            else{
                $number[$i] = strval($nSum);
                break;
            }
        }
        return $isOverflew;
    }
    
    function printNumber($number,$length){
     //   $length = count($number);
        for($i=0;$i<$length;$i++){
            echo $number[$i];
        }
        echo ' ';
     //   var_dump($number)."</br>";
    }
    
    print1ToMaxOfNDigits(4);
  • 相关阅读:
    Gym102028L
    CF985G
    三元环 & 四元环计数 学习笔记
    Hall 定理 学习笔记
    CF36E
    CF1110G
    P6071
    可持久化数据结构 学习笔记
    多项式全家桶
    c++ 编译zlib
  • 原文地址:https://www.cnblogs.com/xlzfdddd/p/10162799.html
Copyright © 2011-2022 走看看