美文网首页
算法训练 幂方分解

算法训练 幂方分解

作者: YOLO_2a2d | 来源:发表于2019-03-07 14:33 被阅读0次

    #include<iostream>

    #include<stdlib.h>

    #include<string.h>

    using namespace std;

    int a[] = { 1, 2,4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048, 4096, 8192, 16384 };

    void divide(int n){

    if (n == 0) return;

    if (n == 1){

    printf("2(0)");

    return;

    }

    if (n == 2){

    printf("2");

    return;

    }

    int i = 14;

    //找到最接近n的幂值

    while (a[i] > n&&i >= 0)

    i--;

    printf("2");

    if (i >= 2){

    printf("(");

    divide(i);

    printf(")");

    }

    n -= a[i];

    if (n)

    printf("+");

    divide(n);

    }

    int main(){

    int N;

    cin >> N;

    divide(N);

    // system("pause");

    return 0;

    }

    本文纯属转载,参考链接

    相关文章

      网友评论

          本文标题:算法训练 幂方分解

          本文链接:https://www.haomeiwen.com/subject/rzkcpqtx.html