【提高组】【4.16/17每日一题】——Getting Zero

简介: 【提高组】【4.16/17每日一题】——Getting Zero

☘前言☘

今日份水题开始。希望有想要提高的同学跟我们一起来刷题0.0

4.16/17每日一题——Getting Zero


🧑🏻作者简介:一个从工业设计改行学嵌入式的年轻人

✨联系方式:2201891280(QQ)

⏳全文大约阅读时间: 20min


全文目录

☘前言☘

解题思路

📑写在最后

B. Getting Zero


解题思路

这个题目的关键在于需要取余的是32768也就是2 15 2^{15}2

15

,所以说最多乘15次必然能得到0。然后考虑+1,直接暴力枚举1-15吧 加1 然后看下最低位的1在哪里,比如在第二位( 100000010 ) 2  ,那么需要的总次数就是 16 - 2 + 1(加了1)。反正都是常数复杂度。看代码:


#include <cstdio>
int main(){
    int n,x;
    scanf("%d",&n);
    while(n--){
        scanf("%d", &x);
        if(x == 0)  {printf("%d ",0);continue;}
        int ans = 15;
        for(int i = 0;i < 15;++i){
            int tmp1 = x + i, count = 0, tmp = tmp1 & (-tmp1);//tmp为 tmp最低位1
            while(tmp) tmp >>= 1, ++count;  //看看最低位1在第几位
            tmp = 16 - count + i;
            ans = ans > tmp ? tmp : ans;
        }
        printf("%d ", ans);
    }
    return 0;
}


头文件换成.h的话直接c提交也可以哟,反正我是没用啥c++的特性。

43842d9715d0e508f9a0a6559fed7f3.png

复杂度可以啦!


相关文章
|
4月前
|
人工智能 C++
第十四届蓝桥杯省赛大学B组(C/C++)整数删除
第十四届蓝桥杯省赛大学B组(C/C++)整数删除
|
9月前
|
算法 C++
小唐开始刷蓝桥(五)2016年第七届C/C++ B组蓝桥杯省赛真题
小唐开始刷蓝桥(五)2016年第七届C/C++ B组蓝桥杯省赛真题
|
9月前
|
机器学习/深度学习 存储 人工智能
小唐开始刷蓝桥(三)2018年第九届C/C++ B组蓝桥杯省赛真题
小唐开始刷蓝桥(三)2018年第九届C/C++ B组蓝桥杯省赛真题
|
9月前
|
机器学习/深度学习 人工智能 测试技术
棋盘(来源:第十四届蓝桥杯省赛JavaA/C/研究生组 , 第十四届蓝桥杯省赛PythonC组)
棋盘(来源:第十四届蓝桥杯省赛JavaA/C/研究生组 , 第十四届蓝桥杯省赛PythonC组)
|
9月前
|
测试技术
消除游戏(第十三届蓝桥杯省赛C++C组 , 第十三届蓝桥杯省赛PythonA/B/研究生组)
消除游戏(第十三届蓝桥杯省赛C++C组 , 第十三届蓝桥杯省赛PythonA/B/研究生组)
消除游戏(第十三届蓝桥杯省赛C++C组 , 第十三届蓝桥杯省赛PythonA/B/研究生组)
|
9月前
|
数据安全/隐私保护 C++
小唐开始刷蓝桥(九)2012年第三届C/C++ B组蓝桥杯省赛真题
小唐开始刷蓝桥(九)2012年第三届C/C++ B组蓝桥杯省赛真题
|
9月前
|
测试技术
蓝桥杯 2020 第一轮省赛 A 组 F 题(B 组 G 题)解码
蓝桥杯 2020 第一轮省赛 A 组 F 题(B 组 G 题)解码
77 0
|
存储 数据安全/隐私保护
[网鼎杯 2020 青龙组]jocker 题解
[网鼎杯 2020 青龙组]jocker 题解
126 0
|
人工智能 负载均衡 BI
第十二届蓝桥杯省赛第二场 C++ B组 - 负载均衡
第十二届蓝桥杯省赛第二场 C++ B组 - 负载均衡
119 0
|
算法
2018 蓝桥杯省赛 B 组模拟赛(一)
2018 蓝桥杯省赛 B 组模拟赛(一)