这是我的第四篇文章
题目描述:
十进制数转成二进制数,如十进制数7转成二进制数是111。现在给定一个十进制数x(0<=x<=30000),请编写程序输出所对应的二进制数,并且输出这个二进串中最长连续的“0”有几个?
如二制数“101100010”,最长连续的“0”是3。
输入格式:
一个数x
输出格式:
包括两行,第一行是一个二进制数,第二行是一个整数。
样例输入:
354
样例输出:
101100010 3
时间限制: 1000ms
空间限制: 128MB
解析:
直接上代码:
#include<bits/stdc++.h>
using namespace std;
int s[30000001];
int main(){
long long a,b,x,s1=0,z=0,max=0;
cin>>a;
if(a==0){
cout<<0<<endl<<1;
return 0;
}
while(a){
b=a%2;
s[s1]=b;
s1++;
a=a/2;
}
for(int i=s1-1;i>=0;i--){
cout<<s[i];
}cout<<endl;
for(int i=s1-1;i>=0;i--){
if(s[i]==0){
z++;
if(z>max){
max=z;
}
}else{
z=0;
}
}cout<<max;
return 0;
}
比较长!大家欢迎借鉴!
欢迎光临我的文章!
蒟蒻写博客不易!