码迷,mamicode.com
首页 > 其他好文 > 详细

【编程题目】输出 1 到最大的 N 位数

时间:2014-08-16 19:46:00      阅读:218      评论:0      收藏:0      [点我收藏+]

标签:style   blog   color   os   io   for   ar   div   

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;
}

 

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

【编程题目】输出 1 到最大的 N 位数,布布扣,bubuko.com

【编程题目】输出 1 到最大的 N 位数

标签:style   blog   color   os   io   for   ar   div   

原文地址:http://www.cnblogs.com/dplearning/p/3916791.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!