1
//
//  main.c
//  단기 연구 과제
//  Created by Shiro Nai on 07/05/2019.
//  Copyright © 2019 Shiro Nai. All rights 
//  reserved.


#include <stdio.h>
#include <math.h>

int main(int argc, const char * argv[]) {
    double n;

    printf("How many people?");
    scanf("%lf", &n);

    int k = floor(log10(n)/log10(2));

    printf("The last standing person's number is %lf.", (2*(n-(2^k)))+1);
    return 0;
}

输出与我预期的不同。例如,当n=5 时,答案是 3,但我得到 11 的输出。

4

1 回答 1

3

^符号不是幂运算符。这不做任何数学运算,这是一个异或运算符。

为了进行功率计算,您需要pow()math.h

#include <stdio.h>
#include <math.h>

int main() {
    printf("The value of 11 ^ 3 = %.2f", pow(11.0, 3)); // outputs 1331.00
}

资料来源:

于 2019-05-06T17:07:56.900 回答