题目地址:

pid=46">NYOJ 46

思路:能够化成二进制来求解。结果是最高位的位数-1+最高位后面1的个数。比如:对于3。它的二进制代码为11,就是用这个最高位(2-1)加上后面的1的个数(1个)。

用最高位1的目的是他能代表了转化的次数,由于2+2=4,4+4=8 8+8=16........

#include <stdio.h>
#include <math.h>
#include <string.h>
#include <stdlib.h>
#include <iostream>
#include <sstream>
#include <algorithm>
#include <set>
#include <queue>
#include <stack>
#include <map>
using namespace std;
typedef long long LL;
const int inf=0x3f3f3f3f;
const double pi= acos(-1.0);
const double esp=1e-6;
const int maxn=21010;
char str[110];
int main()
{
int T,n,i,j;
int cnt;
scanf("%d",&T);
while(T--){
scanf("%d",&n);
memset(str,0,sizeof(str));
i=0;
while(n/2!=0){
str[i++]='0'+n%2;
n=n/2;
}
str[i]='1';
cnt=0;
for(j=0;j<i;j++){
if(str[j]=='1')
cnt++;
}
printf("%d\n",strlen(str)-1+cnt);
}
return 0;
}

最新文章

  1. Linux(Ubuntu) Mysql的安装配置例子以及常用命令
  2. Python-06-面向对象(基础篇)
  3. Android开发自学笔记(Android Studio)&mdash;4.5 ProgressBar及其子类
  4. 数据转换成json传递
  5. ImageMagick又一处命令执行
  6. SVO实时全局光照:中等规模场景的GI实现
  7. Ultra-QuickSort 分类: POJ 排序 2015-08-03 15:39 2人阅读 评论(0) 收藏
  8. ASP.NET MVC SignalR
  9. Android组件的通讯——Intent
  10. mac10.7安装xcode3.2.5和xcode4.2过程和方法
  11. 武汉科技大学ACM :1002: 零起点学算法38——求阶乘和
  12. Oracle EBS-SQL (SYS-11):查询系统已打的PATCH.sql
  13. vue + socket.io实现一个简易聊天室
  14. dataTables 使用整理
  15. C++开发python windows版本的扩展模块示例
  16. Config安全控制
  17. 让PC端页面在手机端显示缩小版的解决方法
  18. 【SSL】OV、DV和EV证书的区别
  19. nginx接入let&#39;s encrypt
  20. update-rc.d使用

热门文章

  1. 关于 require的缓存
  2. java web分页查询初试
  3. 【计算几何初步-凸包-Jarvis步进法。】【HDU1392】Surround the Trees
  4. php 添加 redis 扩展模块
  5. JavaScript与Java的区别
  6. UVA 1345 Jamie&#39;s Contact Groups
  7. OC——网络解析获取图片的应用
  8. 配置Apache2 管理 SVN
  9. T - 阿牛的EOF牛肉串(第二季水)
  10. 使用NODEJS+REDIS开发一个消息队列以及定时任务处理