• 打印1到最大的n位数


     1 #include "stdafx.h"
     2 #include <iostream>
     3 #include <exception>
     4 #include <vector>
     5 #include <stack>
     6 /*
     7 题目:打印1到最大的n位数
     8      输入数字n,按顺序打印出从1到最大的n位数的十进制数.比如输入3,则打印出1,2,3一直到最大的3位数即999
     9 */
    10 using namespace std;
    11 
    12 bool Increment(char * number)
    13 {
    14     bool isOverflow = false;
    15     int nTakeOver = 0;
    16     int nLength = strlen(number);
    17     cout<<"strlen(number):"<<nLength<<endl;
    18     for(int i = nLength -1;i>=0;--i)
    19     {
    20         int nSum = number[i]-'0'+nTakeOver;//将第i位的字符改成整形.加上是否有进位.
    21         if(i==nLength-1)
    22             nSum++; //往最低位加一个1,如果加上1,大于等于10.就要往前进位.
    23         if(nSum>=10)
    24         {
    25             if(i==0)
    26                 isOverflow = true;
    27             else
    28             {
    29                 nSum -=10;
    30                 nTakeOver = 1;
    31                 number[i] = '0' +nSum;
    32             }
    33         }
    34         else
    35         {
    36             number[i] = '0' +nSum;
    37             break;
    38         }
    39     }
    40     return isOverflow;
    41 }
    42 void PrintNumber(char* number)
    43 {
    44     while(*number=='0')
    45         number++;
    46     cout<<number<<endl;
    47 }
    48 
    49 
    50 int _tmain(int argc, _TCHAR* argv[])
    51 { 
    52     int n;
    53     cin>>n;
    54     if(n<=0)
    55 
    56     {
    57         cout<<"n不合适"<<endl;
    58     }
    59     else
    60     {
    61         char *number = new char[n+1];
    62         //number[0]='0';
    63         memset(number,'0',n);
    64         number[n] = '';
    65         while(!Increment(number))
    66         {
    67             PrintNumber(number);
    68         }
    69             delete []number;
    70     }
    71 
    72     return 0 ;
    73 }
  • 相关阅读:
    4408: [Fjoi 2016]神秘数
    UOJ #35. 后缀排序[后缀数组详细整理]
    POJ 2887 Big String
    搜索过滤grep(win下为findstr)
    解决putty自动断开的问题
    > >> 将错误输出到文件
    环境变量
    端口被占用,查看并杀死占用端口的进程
    查找文件路径find
    【vim使用】
  • 原文地址:https://www.cnblogs.com/crazycodehzp/p/3561542.html
Copyright © 2020-2023  润新知