Josephus问题归一化方程的误差

时间:2019-05-06 16:31:07

标签: c josephus

//
//  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。

1 个答案:

答案 0 :(得分:3)

^符号不是幂运算符。这不会进行任何数学运算,这是一个exclusive-or运算符。

要进行功率计算,您需要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
}

来源: