【提高组】【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

复杂度可以啦!


相关文章
|
Kubernetes 容器
Failed at step CHDIR spawning /opt/kubernetes/bin/etcd: No such file or directory
Failed at step CHDIR spawning /opt/kubernetes/bin/etcd: No such file or directory
152 0
|
安全 Java 关系型数据库
基于JSP技术的弹幕视频网站系统
基于JSP技术的弹幕视频网站系统
|
C++
【PTA】​L1-069 胎压监测 ​ (C++)
【PTA】​L1-069 胎压监测 ​ (C++)
185 0
【PTA】​L1-069 胎压监测 ​ (C++)
|
C++
【PTA】​ L1-080 乘法口诀数列​(C++)
【PTA】​ L1-080 乘法口诀数列​(C++)
174 0
【PTA】​ L1-080 乘法口诀数列​(C++)
|
算法 Java
数据结构-构造哈夫曼树【详解+代码+图示】一文解惑!
数据结构-构造哈夫曼树【详解+代码+图示】一文解惑!
5782 1
|
前端开发
React组件导入的两种方式(动态导入组件的实现)
React组件导入的两种方式(动态导入组件的实现)
540 0
|
C语言 C++
【哈夫曼树】基本概念、构建过程及C++代码
【哈夫曼树】基本概念、构建过程及C++代码
464 0
解决jupyter notebook 画图不显示
解决jupyter notebook 画图不显示
IDEA设置鼠标滚轮控制缩放大小
本文是idea的使用小技巧,通过ctrl+鼠标滚轮,来控制缩放大小。
3650 0
IDEA设置鼠标滚轮控制缩放大小
多表查询 SQL21用户题目回答情况(三种写法)
多表查询 SQL21用户题目回答情况(三种写法)
230 0
多表查询 SQL21用户题目回答情况(三种写法)