题解 | 游游的除2操作

游游的除2操作

https://www.nowcoder.com/practice/b797f46aa75145a0bbe112099f7cbd18

//活动地址: 牛客春招刷题训练营 - 编程打卡活动

#include <stdio.h>
#include <stdlib.h>

int cmp(int i, int min, int num, int *count_p)
{
    while (min!=num) {
        if (num > min)
        {
            num /= 2;
            (*count_p)++;
        }
        else
        {
            min /= 2;
            (*count_p) += i;
        }
    }
    return min;
}

int main() {
    int n = 0;
    // 这题难就难在  因为可能会出现最小数是 负数  所以得用 无符号整数
    unsigned int min = 0;
    unsigned int num = 0;
    int count = 0;
    // 输入 
    scanf("%d", &n);
    scanf("%d", &min);
    for (int i=1; i<n; i++) {
        scanf("%d", &num);
        min = cmp(i, min, num, &count);
    }

    printf("%d", count);
}
//活动地址: 牛客春招刷题训练营 - 编程打卡活动

全部评论

相关推荐

04-17 10:16
门头沟学院 Java
小浪_coder:24届很难找了,马上25的都毕业了还有很多没找到的
点赞 评论 收藏
分享
ResourceUtilization:四六级不愧是大学最有用的证之一
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务