题目描述:给定一个数字N,打印从1到最大的N位数。

看起来像是很简单的问题(虽然实际也不是很难。。。)我们很容易写出这样的代码:

 #include<iostream>
#include<cstdio> int a[]={,,,,};
using namespace std;
int main()
{
int N;
cin>>N;
for(int i=;i<=a[N-];i++)
{
printf("%d\n",i);
} }

但是这样还是有不少问题的,说的简单点这个N很大怎么办?你的程序还能运行吗?也就是说在范围不明确的情况下这可能是一个大数问题,大数的最简单解决方式是Java的BigInternet,但是C++里没有这个类(感觉好不符合时代潮流啊,估计快加上了吧)。于是我们要自己用字符串模拟,很简单就跟小学算算术一样,直接上代码:

 #include<iostream>
#include<cstdio>
#include<cstring>
long long a[]={,,,,,,};
char c[];
void add()
{
c[]++;
for(int i=;i>=;i--)
{
if(c[i]==''+)
{
c[i]='';
c[i-]++;
}
//else
//{
//c[i]++;
//}
} bool flg=false;
for(int i=;i<;i++)
{
if(c[i]!='')
{
flg=true;
printf("%c",c[i]);
}
else
{
if(flg)
{
printf("");
}
}
}
printf("\n");
} void print(int N)
{
memset(c,'',sizeof(c));
for(int i=;i<=N;i++)
{
add();
}
}
using namespace std;
int main()
{
int N;
cin>>N;
print(a[N-]);
return ;
}

顺便说几句对面试的这类题的一点想法吧,其实不管是笔试面试都会有这么一些考查程序稳定性的题目,也即是说给你那么个看似很简单的问题,看似是随意就能写出代码,但实际上就各种陷阱。这个只能是我们自己小心了,考虑要各种全面,能问的情况就尽量问清楚,对数据量、异常什么的要一百二十个小心。也是提醒自己小心吧。。。

面试题之【打印1到最大的N位数】的更多相关文章

  1. 面试题12:打印1到最大的n位数

    // 面试题12_打印1到最大的n位数.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" #include <iostream> ...

  2. 剑指offer编程题Java实现——面试题12打印1到最大的n位数

    题目:打印1到最大的n位数 输入数字n,按顺序打印输出从1到最大的n位十进制数,比如输入3,打印从1到999. 这道题考察的地方是如何表示大数问题.由于n是任意大的数组,如果n太大的话n位数就超过了l ...

  3. 剑指Offer:面试题12——打印1到最大的n位数(java实现)

    问题描述: 输入数字n,按顺序打印出从1到最大的n位十进制数,比如输入3,则打印出1,2,3一直到最大的3位数即999. 思路1:最简单的想法就是先找出最大的n位数,然后循环打印即可. public ...

  4. 《剑指offer》面试题12 打印1到最大的n位数 Java版

    书中方法:这道题的一个陷阱在于不能用int或者long去存储你要打印的数,然后用打印函数打印,因为这个数可能会很大.如果加1后超出了最大的n位数,就不打印了.用最高位是否进位判断是否结束,打印的时候注 ...

  5. 剑指offer-面试题12.打印1到最大的n位数

    题目:输入数字n,按照打印出从1最大的n位10进制数.比如3,则 打印出1.2.3一直到最大的3位数即999 1.你觉得如果面试会有这么简单的题,那 只能说明你---太天真. 2.n=3尚可,如果n= ...

  6. 《剑指offer》面试题12:打印1到最大的n位数

    面试题12:打印1到最大的n位数 剑指offer题目12,题目如下 输入数字n,按顺序打印出1到最大的n位十进制数,比如输入3,则打印出1,2,3一直到最大的三位数999 方法一 和面试题11< ...

  7. 【面试题012】打印1到最大的n位数

    [面试题012]打印1到最大的n位数  大数问题 字符串中的每一个字符都是‘0’到‘9’之间的某一个字符,用来表示数字中的一位,因为数字最大是n位的,因此我们需要一个长度为n+1的字符串,字符串的最后 ...

  8. 算法笔记_189:历届试题 横向打印二叉树(Java)

    目录 1 问题描述 2 解决方案   1 问题描述 问题描述 二叉树可以用于排序.其原理很简单:对于一个排序二叉树添加新节点时,先与根节点比较,若小则交给左子树继续处理,否则交给右子树. 当遇到空子树 ...

  9. 【剑指offer】面试题 17. 打印从 1 到最大的 n 位数

    面试题 17. 打印从 1 到最大的 n 位数 题目描述 题目:输入数字 n,按顺序打印出从 1 最大的 n 位十进制数.比如输入 3,则打印出 1.2.3 一直到最大的 3 位数即 999. 解答过 ...

  10. 面试题17:打印1到最大的n位数

    // 面试题17:打印1到最大的n位数 // 题目:输入数字n,按顺序打印出从1最大的n位十进制数.比如输入3,则 // 打印出1.2.3一直到最大的3位数即999. 解题思路: 首先是一个大陷阱,n ...

随机推荐

  1. Git打包文件

    原文: http://gitbook.liuhui998.com/7_5.html 一.打包文件索引 首先, 我们来看一下打包文件索引, 基本上它只是一系列指向打包文件内位置的书签. 打包文件索引有两 ...

  2. Hexo

    Hexo Hexo is a fast, simple & powerful blog framework powered by Node.js.

  3. PDF.js

    http://www.linuxidc.com/Linux/2015-06/118728.htm http://blog.csdn.net/xiangcns/article/details/42089 ...

  4. jQuery获取循环中的选中单选按钮radio的值

    1.<input type="radio" name="testradio" value="jquery获取radio的值" /> ...

  5. android打电话的小程序

    主要使用了Intent以及uses-permission标签. call.rar 下载后直接导入项目

  6. Django ~module index

    https://docs.djangoproject.com/en/1.9/py-modindex/ django.conf.urls django.contrib.admin django.db.m ...

  7. GIT简单操作

    以下只是简单的bash的操作命令,个人比较喜欢用gui 打开 git bash here git clone https://github.com/自己的名字/trunk git checkout + ...

  8. ZipArchive和SSZipArchive使用详解

    一.SSZipArchive 1.简介 SSZipArchive是iOS和Mac上一个简单实用的压缩和解压插件.用途包括:1.解压zip文件:2.解压密码保护的ZIP文件:3.创建新的zip文件:4. ...

  9. yii php 图片上传与生成缩略图

    今天需要做图片上传与生成缩略图的功能,把代码进行记录如下: html 视图              ($pic_action_url = $this->createAbsoluteUrl('h ...

  10. NodeVisitor的使用-遍历Geode节点下的Geometry并获取顶点、法向量等数据

    struct Subset { std::vector<float> vertexs;//位置 std::vector<float> normals;//法向 std::vec ...