简单的求值方法:
给出一个数字x,求x十进制各位相加的和
(将它转化为二进制呢?)
temp=1;
while(x>0){
ans+=x%10;
x/=10;
temp*=10;
}
整个过程分为:记录,剪切数位,记号修改三部分
这里,temp指代操作的位数(值是10的乘方)
如果是二进制,循环里的10全部修正为2即可
如果是对temp有要求的其他数据,在记录区域内写相应代码即可
A市的工人们天天抱着脑袋,因为食品生产线上,他们用0和1来表示是否添加原料,而原料的种类,总计多达20种……
更头疼的是,电路板上的数位,对于工人来说是一个不小的难题。电路板上的LED屏幕总是把0和1的数据,转化成一个十进制的数,于是每次,工人们就会天天计算12039这种数字的二进制位,这让工人们很头疼
对于一个数字x(0
一个数字x,表示LED屏幕的数字
输出
一个等式,x=Ei+Ej+Ek+…+E0,其中,Ei,Ej,Ek….是从大到小的2的乘方
样例输入
43
样例输出
43=32+8+2+1
题目描述#include
using namespace std;
int main()
{int n,a[30],k=0,i,c=1,num;cin>>n;num=n;while(n!=0){if(n%2!=0) //转化为二进制后这一位是1的话{a[k++]=c; //将1乘当前位数}n=n/2;c=c*2; //c到下一位}cout<2.
if
else if
else if
…
else
不会漏写break ,只会执行其中一条if分支, 能实现复杂逻辑.3.模拟
问题2015
晾衣服的机器会晾几件衣服,衣服的长度题目给出。
衣服之间晾晒,要隔开一格来作为空位。这个环形的架子,按下按钮会晾干放上的衣服。下面需要依次晾干几件长度不一的衣服,请你给出某个格子的使用情况。
输入
第一行一个数n,表示晾衣架的长度。(n<100000)
接下来有若干数据,每条数据第一行若干个数(数据保证不会占满n),表示衣服的长度
第二行一个数 i,表示要查询 i 位置的使用情况
输出
输出第x位置格子的状态
对于每个数据,使用0表示未使用,1表示有衣服,2表示格子用于隔开衣服。
样例输入
50
2 33 2
34
3 25 2 1
50
样例输出
2
0#include
#include
using namespace std;
int main()
{int l,i,j,n,m,a[100055],x,k;cin>>l; //衣架长度while(cin>>n) //衣服个数{for(k=0;k<l;k++) //初始化数组a[k]=0;int position=0;for(i=0;i<n;i++){cin>>m; //输入衣服长度for(j=0;j<m;j++){a[position]=1;position++;}a[position++]=2;}cin>>x;if(a[x-1]==0) cout<<0<<endl;else if(a[x-1]==1) cout<<1<<endl;else if(a[x-1]==2) cout<<2<<endl;}return 0;
}