1621: 减小数

Description
给定一个数n,你的任务是用最少的操作把1,2.......n中的所有数都变成0。每次操作可以从序列中选择一个或多个同时减去一个数。
Input
输入n(n<=100000)
Output
输出最小次数
Sample Input
1
2
Sample Output
1
2

参考:https://blog.csdn.net/qq_38735931/article/details/82661802
思路:找规律,然后神奇的事情就发生了,代码要多简洁有多简洁
AC代码:

#include<vector>
#include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
#include<map>
#include<algorithm>
using namespace std;
typedef long long ll;
const int maxn=300050;

int main(){
   int t,temp,m,n,count;
    int a[maxn];a[0]=0;
    while(~scanf("%d",&t)){
        count=0;
    while(t){
        count++;
        t/=2;
        
        }
         printf("%d\n",count); 
   }

     return 0;
}
全部评论

相关推荐

不愿透露姓名的神秘牛友
10-04 05:12
kalistar:简历留六个字,北京大学(本科),黑体加粗,看看哪个hr不长眼敢碰瓷我们北大✌
点赞 评论 收藏
分享
算法冲刺中:kpi面加一,面完完全没动静,感谢信都没有
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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