zoukankan      html  css  js  c++  java
  • 【编程题目】输出 1 到最大的 N 位数

    65.输出 1 到最大的 N 位数(运算)
    题目:输入数字 n,按顺序输出从 1 最大的 n 位 10 进制数。比如输入 3,
    则输出 1、2、3 一直到最大的 3 位数即 999。

    思路:肯定要考虑数字溢出的情况,用字符串表示数字,模拟加法。

    /*
    65.输出 1 到最大的 N 位数(运算)
    题目:输入数字 n,按顺序输出从 1 最大的 n 位 10 进制数。比如输入 3,
    则输出 1、2、3 一直到最大的 3 位数即 999。
    */
    
    #include <iostream>
    using namespace std;
    
    void printnum(int n)
    {
        int figure = 0; //记录数字的位数
    
        char * pNum = new char [n + 1];
        memset(pNum, 0, n * sizeof(char));
    
        pNum[0] = 1; //从1开始
        while(figure < n)
        {
            for (int i = figure; i >= 0; i--) //输出数字 从当前的最高位开始
            {
                cout << int(pNum[i]);
            }
            cout << endl;
    
            int ftmp = 0;
            while (pNum[ftmp] == 9) //从最后一位依次向前判断是否进位,如果进位本位就归零, 找到实际上增加的那一位
            {
                pNum[ftmp++] = 0;
            }
            if (ftmp > figure) //如果满足,表示数字的位数增加了
            {
                figure++;
            }
            pNum[ftmp] += 1;
        }
    
        delete [] pNum;
    }
    
    int main()
    {
        printnum(3);
        return 0;
    }

    网上搜了下答案,感觉我自己写得这个就挺好的。

  • 相关阅读:
    Druid 介绍及配置
    LoadRunner性能测试入门教程
    Java 程序员必须收藏的资源大全
    JProfiler 入门教程
    Web网站的性能测试工具
    职场中必须知道的8条规则
    作为测试人员需要的技能和工作要求
    web性能监控与分析
    Java应用常用性能分析工具
    mockito简单教程
  • 原文地址:https://www.cnblogs.com/dplearning/p/3916791.html
Copyright © 2011-2022 走看看