I.十进制中的二进制
解题方法:直接把给定范围内的有0和1组成的数暴力输出,然后开个数组把这些数放进去,进而在数组中找要求的范围内符合条件的数就行了(一开始做的时候还以为有什么规律。。。一直在找规律,还不如暴力来的快)
求符合要求的数的代码:
#include<iostream>
using namespace std;
typedef long long ll;
const ll maxn=1e9;
ll i,j,k;
int flag=0;
int sum=0;
void prepare()
{
for(i=1;i<=maxn;i++)
{
int tmp=i;
flag=0;
while(tmp>0)
{
if((tmp%10==0)||(tmp%10==1))
{
tmp/=10;
flag=1;
}
else
{
flag=0;
break;
}
}
if(flag)
{
cout<<i<<",";
sum+=1;
}
}
cout<<endl;
cout<<"sum="<<sum<<endl;
}
int main()
{
prepare();
return 0;
}
正式题解:
#include<iostream>
#include<algorithm>
#include<string.h>
using namespace std;
typedef long long ll;
ll s[]={
1,10,11,100,101,110,111,1000,1001,1010,1011,1100,1101,1110,1111,10000,10001,10010,10011,10100,10101,10110,10111,11000,11001,11010,11011,11100,11101,11110,11111,100000,100001,100010,100011,100100,100101,100110,100111,101000,101001,101010,101011,101100,101101,101110,101111,110000,110001,110010,110011,110100,110101,110110,110111,111000,111001,111010,111011,111100,111101,111110,111111,1000000,1000001,1000010,1000011,1000100,1000101,1000110,1000111,1001000,1001001,1001010,1001011,1001100,100110,
1001110,1001111,1010000,1010001,1010010,1010011,1010100,1010101,1010110,1010111,1011000,1011001,1011010,1011011,1011100,1011101,1011110,1011111,1100000,1100001,1100010,1100011,1100100,1100101,1100110,1100111,1101000,1101001,1101010,1101011,1101100,1101101,1101110,1101111,1110000,1110001,1110010,1110011,1110100,1110101,1110110,1110111,1111000,1111001,1111010,1111011,1111100,1111101,1111110,1111111,10000000,10000001,10000010,10000011,10000100,10000101,10000110,10000111,10001000,10001001,
10001010,10001011,10001100,10001101,10001110,10001111,10010000,10010001,10010010,10010011,10010100,10010101,10010110,10010111,10011000,10011001,10011010,10011011,10011100,10011101,10011110,10011111,10100000,10100001,10100010,10100011,10100100,10100101,10100110,10100111,10101000,10101001,10101010,10101011,10101100,10101101,10101110,10101111,10110000,10110001,10110010,10110011,10110100,10110101,10110110,10110111,10111000,10111001,10111010,10111011,10111100,10111101,</