代码的复杂性
Code complexity
谁能给我解释一下以下代码的时间复杂度:
cin >> n;
while(n>9)
{
int num = n;
int s = 0;
while(num!=0)
{
s = s + num%10;
num = num/10;
}
n = s;
}
cout<<n<<endl;
上面的代码计算数字的和,直到和变成一个个位数。
示例:45859
= 4+5+8+5+9
= 31
= 3+1
= 4
Edit:我认为计算数字和的内循环的复杂度为0(log_base_10(n)),但是外循环继续进行,直到到目前为止获得的和小于10。所以总复杂度取决于外部循环要运行多少次…我想不明白……一些计算外循环复杂性的数学技巧会有所帮助!!
你正在计算数字的和。n中的位数以log(n)进行缩放。
相关文章:
- C++我的数学有什么问题,为什么我的代码不能正确循环
- 代码在main()中运行,但在函数中出现错误
- 在VS代码中交叉编译Windows与Linux上的MinGW的SDL程序
- 编译包含字符串的代码时遇到问题
- 我在c++代码中生成了一个运行时#3异常
- 为什么此代码O(n)的时间复杂性
- 找到最大的主要因素 - 代码的复杂性
- 用宏替换重复"if"块是否会降低C++中的代码复杂性?
- 以下代码的复杂性是什么?
- 将几行代码写成一行是有益的(就内存和空间复杂性而言)。值得吗?
- 此代码的运行时复杂性是多少
- 以下代码片段的算法复杂性
- 如何降低此代码的复杂性
- 该代码的复杂性是什么
- 代码的复杂性
- 如何在Visual Studio 2008中确定c++代码的复杂性(如CPU周期)
- 多态性:代码中的复杂性错误.需要一个解释
- 下面代码的复杂性是多少
- 我如何直观地证明这段代码的时间复杂性
- 此代码的复杂性是什么?我们是否应该总结复杂性