1.输入一个正整数以2的幂形式输出
#includemain (void) { int x, k = 0; printf("请输入一个正整数:n") ; scanf("%d", &x) ; for (int i = 31 ; i >= 0 ; i--) { if ((x & 0x80000000) == 0x80000000) { if (0 == k) k = 1 ; else printf("+") ; printf("2(%d)", i) ; } x = x<<1 ; } }
2.输入一个正整数以2的幂形式输出,如果幂大于1,幂也用2的幂形式输出
#includevoid p2(int x) { int k = 0 ; for (int i = 31 ; i >= 0 ; i--) { if ((x & 0x80000000) == 0x80000000) { if (0 == k) k = 1 ; else printf("+") ; printf("2(") ; if (i < 2) printf("%d)", i) ; else { p2(i) ; printf(")") ; } } x = x<<1 ; } } main (void) { int x ; printf("请输入一个正整数:n") ; scanf("%d", &x) ; p2(x) ; }
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)