权重 相等大于N的最小数
来源:互联网 发布:php动态网页设计代码 编辑:程序博客网 时间:2024/05/16 09:54
题目链接: http://acm.nyist.net/JudgeOnline/problem.php?pid=412
我的思路就是分情况:主要分为:11110000, 1101100, 11111111三种情况。第一种直接倒置前面加个一即可,第二种考虑01,颠倒下,并把后面的高位的1与地位的0交换:
我的思路就是分情况:主要分为:11110000, 1101100, 11111111三种情况。第一种直接倒置前面加个一即可,第二种考虑01,颠倒下,并把后面的高位的1与地位的0交换:
代码如下:
#include<stdio.h>#include<string.h>#include<math.h>int main(){ int n,i,m,j,t; char sa[32]; char cd[32]; while(scanf("%d",&n)!=EOF) { m=n; int flag=0; for(i=0;i<=31;i++) { if(n<0) sa[i]='1'; else sa[i]='0'; n=n<<1; } //puts(sa); for(i=0;i<=31;i++) if(sa[i]!='0')break; int a0=0,k,h; for(j=0;i<=31;j++) { cd[j]=sa[i];i++; if(sa[i]=='0') a0=1; } cd[j]='\0'; t=strlen(cd); if(a0==0) { printf("%d\n",m+(int)pow(2,t-1)); } else{ for(i=t-1;i>0;i--) if(cd[i]=='1'&&cd[i-1]=='0') { flag=1; k=i; m=m+pow(2,t-1-i); h=t-1; for(int j=k+1;j<h;j++) { if(cd[j]=='1'&&cd[h]=='0') { m=m-pow(2,t-1-j)+pow(2,t-1-h);h=h-1;} //此处为第二种情况; else break; } printf("%d\n",m);break; } long sum=0; if(flag==0) { for(i=0;i<t;i++) if(cd[i]=='1'&&cd[i+1]!='0') sum+=pow(2,i); sum=sum+pow(2,t); printf("%ld\n",sum); } } } return 0;}还个简单的代码,不是我的:
#include<stdio.h>int main(){ long x,b,t,c,m,r; while(scanf("%d",&x)!=EOF) { b=x&(-x); t=x+b; c=t^x; m=(c>>2)/b; r=t|m; printf("%d\n",r); } }
还有个代码,不是很懂:
#include<iostream>#include<cstdio>using namespace std;int main(){ int n,i,n0,cnt1,cnt2,k,l,N; while(scanf("%d",&n)!=EOF) { cnt1=0; N=n; while(n) { if(n%2!=0) break; cnt1++; n/=2; } cnt2=cnt1; while(n) { if(n%2==0) break; cnt2++; n/=2; } k=l=1; for(i=1; i<=cnt1; i++) k*=2; k-=1; for(i=1; i<=cnt2-cnt1-1; i++) l*=2; n0=k+l; printf("%d\n",n0+N); } return 0;}
- 权重 相等大于N的最小数
- 求一个最小的一个大于N并且二进制权重与N相同的数
- 大于N的最小回文数
- 大于N的最小回文数
- 输入一个正整数N,返回一个大于N并且二进制权重跟N相同的数
- 大于N的最小回文数 HNUST 1274
- 大于一个数的最小回文数
- 如何使用位操作得到大于N且为2的次方的最小的数
- 寻找大于2^N的最小质数
- 有序数组长度为N 元素出现的长度为 大于等于 N 除 4 的最小的数
- 百度笔试:求大于n的最小的不重复数,不重复数是指相邻两个数不相同
- 求大于一个数的最小对称数
- 找出大于一个数的最小回文数
- 找到大于一个正整数N的最小2的次幂数
- 返回大于等于N的最小整数值?
- LeetCode219 查找相等两个数之间的最小距离
- 查找大于一正整数的最小的不重复数
- 在数组中找到次数大于N/K的数
- jsp标签分页+Flex HttpServer
- 测试存储过程的调用
- spring3 jsp页面使用<form:form modelAttribute="xxxx" action="xxxx">报错,附连接数据库的spring MVC annotation 案例
- 我的.conkyrc
- 重启及关机
- 权重 相等大于N的最小数
- 你知道的东西
- 信号量
- 在Yii中使用Captcha验证码
- Linux高端内存映射(中)
- 判断浏览器版本及什么浏览器
- Windows服务编写原理及探讨
- 矩阵棋盘划分的CUDA程序
- 一些不错的技术网站