#include <stdio.h> #include <stdlib.h> #include <math.h> long long fun( long long k ) { long long b; for( b = 0; pow( 2 , b ) < k; b++ ); return b; } int main() { long long n; while( scanf("%lld",&n) != EOF ) { long long m = fun( ++n ); long long c = pow( 2 , m ), g ,f; g = c - n + 1; f = c + 1 - 2 * g; printf("%lld\n",f); } return 0; }时间复杂度与空间复杂度分析
时间: 2024-03-08 17:45:13 浏览: 47
时间复杂度分析:
1. 函数fun的时间复杂度为 O(log n),其中n为输入的数字。
2. 主函数中,除了调用函数fun,还包括了一些基本的算术运算和输入输出操作,它们的时间复杂度可以忽略不计。
3. 因此,整个程序的时间复杂度为 O(log n)。
空间复杂度分析:
1. 函数fun中只定义了一个变量b,空间复杂度为 O(1)。
2. 主函数中除了调用函数fun外,只定义了4个变量,空间复杂度也为 O(1)。
3. 因此,整个程序的空间复杂度为 O(1)。
综上,该程序的时间复杂度为 O(log n),空间复杂度为 O(1)。
阅读全文