【问题标题】:Max number of X digits number [closed]X位数的最大数量[关闭]
【发布时间】:2013-01-20 09:33:22
【问题描述】:

我正在寻找一个关于当整数达到其数字的最大数时停止的条件的想法..

2位数字的最大个数是99

5位数字的最大个数是99999

我有这个

while(x != ([10^number of digits] -1))
{
    x++;
}
cout << x;

但实际上我正在处理字符串,我可能有一个巨大的数字,并且这段代码在 9 位数字后开始执行很长的时间。

谁能给我一个好主意,谢谢。

【问题讨论】:

  • 什么编程语言?请使用适当的标签。
  • 我正在使用 c++ ..srry :)
  • 您真正想要完成什么?您是否只想获得 N 9s 的数字?如果是这样,那很容易。无论如何,对代码的一个简单改进就是在循环之前而不是在循环期间计算 10^number of digits - 1

标签: c++ numbers max


【解决方案1】:

用起来会快一点

x = ([10^number of digits] -1);

而不是

while(x != ([10^number of digits] -1))
{
    x++;
}

【讨论】:

    【解决方案2】:

    怎么样:

    done = false;
    while(!done)
    {
        x++;
        done = true;
        for (i=0 ; i<number_of_digits; i++)
           if x[i] != '9'
              done = false;
    }
    cout << x;
    

    【讨论】:

    • 这就是我想要的,谢谢。
    猜你喜欢
    • 2011-02-13
    • 1970-01-01
    • 2019-09-30
    • 1970-01-01
    • 1970-01-01
    • 2022-01-28
    • 1970-01-01
    • 1970-01-01
    • 2015-11-16
    相关资源
    最近更新 更多