剑指Offer面试题:9.打印1到最大的n位数

一题目:打印1到最大的n位数二不考虑大数解法三字符串模拟算法解法解决这个问题需要表达一个大数。最常用也是最容易的方法是用字符串或者数组表达大数。该算法的步骤如下:Step1.把字符串中的

大家好,又见面了,我是全栈君,今天给大家准备了Idea注册码。

剑指Offer面试题:9.打印1到最大的n位数此处内容已经被作者隐藏,请输入验证码查看内容
验证码:
请关注本站微信公众号,回复“”,获取验证码。在微信里搜索“”或者“”或者微信扫描右侧二维码都可以关注本站微信公众号。

一 题目:打印1到最大的n位数

题目:输入数字n,按顺序打印从1到最大的n位十进制。比如输入3,则打印出1、2、3一直到最大的3位数即999。

二 不考虑大数解法

// 打印从1到最大的n位数
void PrintNumbs(int n)
{
    int nMax = 0;
    for (int i = 1;i <= n; i ++)
    {
        nMax = nMax*10 + 9;
    }
    for (int j = 1; j <= nMax; j ++)
    {
        cout << j << endl;
    }
}

三 字符串模拟算法解法

  解决这个问题需要表达一个大数。最常用也是最容易的方法是用字符串或者数组表达大数。该算法的步骤如下:

  Step1.把字符串中的每一个数字都初始化为’0’;

  Step2.每一次为字符串表示的数字加1,再打印出来;

#include "stdio.h"
#include <iostream>
using namespace std;

bool StructNumber(char *pNumber)
{
    int nLen = strlen(pNumber);
    bool bOver = false;
    for (int i = nLen - 1; i >= 0; i --)
    {
        int nSum = pNumber[i] - '0'+ 1;

        if (nSum >= 10)
        {
            if (0 == i)
            {
                bOver = true;
            }
            else
            {
                nSum -= 10;
                pNumber[i]=nSum+'0';
            }
        }
        else
        {
            pNumber[i] = nSum+'0';
            break;
        }
    }

    return bOver;
}

void PrintCount_1(char *pNumber)
{
    bool bIsBegin = true;
    int nLen = strlen(pNumber);
    for(int i =0;i < nLen; i ++)
    {
        if (bIsBegin && pNumber[i] != '0')
        {
            bIsBegin = false;
        }
        if (!bIsBegin)
        {
            cout << pNumber[i];
        }
    }
    cout << " ";
}

void PrintCount(int n)
{
    char *cNumber = new char[n+1];
    memset(cNumber, '0', n);
    cNumber[n] = '
#include "stdio.h" #include <iostream> using namespace std; bool StructNumber(char *pNumber) { int nLen = strlen(pNumber); bool bOver = false; for (int i = nLen - 1; i >= 0; i --) { int nSum = pNumber[i] - '0'+ 1; if (nSum >= 10) { if (0 == i) { bOver = true; } else { nSum -= 10; pNumber[i]=nSum+'0'; } } else { pNumber[i] = nSum+'0'; break; } } return bOver; } void PrintCount_1(char *pNumber) { bool bIsBegin = true; int nLen = strlen(pNumber); for(int i =0;i < nLen; i ++) { if (bIsBegin && pNumber[i] != '0') { bIsBegin = false; } if (!bIsBegin) { cout << pNumber[i]; } } cout << " "; } void PrintCount(int n) { char *cNumber = new char[n+1]; memset(cNumber, '0', n); cNumber[n] = '\0'; int nLen = strlen(cNumber); while(!StructNumber(cNumber)) { PrintCount_1(cNumber); } delete[] cNumber; } void main() { PrintCount(3); return; }
'; int nLen = strlen(cNumber); while(!StructNumber(cNumber)) { PrintCount_1(cNumber); } delete[] cNumber; } void main() { PrintCount(3); return; }

 剑指Offer面试题:9.打印1到最大的n位数

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/120166.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • latex公式换行后保证括弧大小相同

    latex公式换行后保证括弧大小相同latex公式换行方法一:\left\{xxxxx\right.\left.xxxxx\right\}此方法可能导致上下括号大小不同为解决此问题,需要自定义括号大小,自带的大小控制符有\big,\Big,\bigg,\Bigg\big\{xxxxxxxxx\big\}这样人为定义了同样大小的括弧,根据需要调整括弧控制符即可…

  • Vim 基本配置和经常使用的命令

    Vim 基本配置和经常使用的命令

  • OpenCv相机标定——圆形标定板标定[通俗易懂]

    OpenCv相机标定——圆形标定板标定[通俗易懂]Opencv相机标定之圆形标定板标定——本文主要介绍了OpenCv中圆形标定板的标定,并将标定结果与Halcon标定进行比较分析,得出OpenCv标定算法对图像品质的鲁棒性较高,标定精度较高。同时也从侧面反映出使用Halcon进行高精度标定时,对图像品质的要求较高,当然这也是高精度标定下的高要求。

  • 常用网络图片url地址「建议收藏」

    常用网络图片url地址「建议收藏」http://www.baidu.com/img/bdlogo.pnghttp://rongcloud-web.qiniudn.com/docs_demo_rongcloud_logo.png

  • wordpress被挂马_php绕过

    wordpress被挂马_php绕过注:本文仅供学习参考网页挂马简介网页挂马指的是把一个木马程序上传到一个网站里面,然后用木马生成器生成一个网马,放到网页空间里面,再加代码使得木马在打开网页时运行。网页挂马工作原理作为网页挂马的散布者,其目的是将木马下载到用户本地并进一步执行,当木马得到执行后,就意味着会有更多的木马被下载,且进一步被执行。这样就进入一个恶性的循环,从而使用户的电脑遭到攻击和控制。为达到目的首先要将木马下载到本地。常…

  • Xshell 官方免费版下载流程

    Xshell 官方免费版下载流程官网地址:https://www.netsarang.com所有产品下载地址:https://www.netsarang.com/download/前言网上流传有很多的Xshell的激活成功教程版、绿色版。但是Xshell多版本存在后门,或上传用户服务器账号密码。这是很可怕的,服务器的账号、密码有可能泄露。实际上官方针对个人账户是有提供免费版本来下载。下载免费版…

    2022年10月11日

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号