Created
January 15, 2014 18:20
-
-
Save shintakezou/8441487 to your computer and use it in GitHub Desktop.
Check if a 32bit number decimal representation is made of 0 or 1 digits only.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/* | |
See StackOverflow | |
http://stackoverflow.com/questions/21137812/check-to-see-if-integer-is-one-in-which-each-digit-is-either-a-zero-or-a-one | |
to know why this exists. Do not take it seriously: the other answers show the way! | |
*/ | |
#include <stdio.h> | |
#include <stdbool.h> | |
#include <inttypes.h> | |
#include <limits.h> | |
static uint32_t map01[256][2] = { | |
[0] = { 0x000000, 0x05F5E1 }, | |
[1] = { 0x000000, 0x05F5E1 }, | |
[2] = { 0x05F60C, 0x00002B }, | |
[3] = { 0x05F60C, 0x00002B }, | |
[4] = { 0x05F768, 0x000187 }, | |
[5] = { 0x05F768, 0x000187 }, | |
[6] = { 0x05F793, 0x0001B2 }, | |
[7] = { 0x05F793, 0x0001B2 }, | |
[8] = { 0x069002, 0x009A21 }, | |
[9] = { 0x069002, 0x009A21 }, | |
[10] = { 0x000000, 0x05F5E1 }, | |
[11] = { 0x000000, 0x05F5E1 }, | |
[12] = { 0x069DBE, 0x00A7DD }, | |
[13] = { 0x069DBE, 0x00A7DD }, | |
[14] = { 0x05F768, 0x000187 }, | |
[15] = { 0x05F768, 0x000187 }, | |
[16] = { 0x05F608, 0x000027 }, | |
[17] = { 0x05F608, 0x000027 }, | |
[18] = { 0x069002, 0x009A21 }, | |
[19] = { 0x069002, 0x009A21 }, | |
[20] = { 0x05F78F, 0x0001AE }, | |
[21] = { 0x05F78F, 0x0001AE }, | |
[22] = { 0x069DBE, 0x00A7DD }, | |
[23] = { 0x069DBE, 0x00A7DD }, | |
[24] = { 0x069029, 0x009A48 }, | |
[25] = { 0x069029, 0x009A48 }, | |
[26] = { 0x05F608, 0x000027 }, | |
[27] = { 0x05F608, 0x000027 }, | |
[28] = { 0x00A804, 0x069DE5 }, | |
[29] = { 0x00A804, 0x069DE5 }, | |
[30] = { 0x05F78F, 0x0001AE }, | |
[31] = { 0x05F78F, 0x0001AE }, | |
[32] = { 0x009A1D, 0x068FFE }, | |
[33] = { 0x009A1D, 0x068FFE }, | |
[34] = { 0x069029, 0x009A48 }, | |
[35] = { 0x069029, 0x009A48 }, | |
[36] = { 0x069DBA, 0x00A7D9 }, | |
[37] = { 0x069DBA, 0x00A7D9 }, | |
[38] = { 0x00A804, 0x069DE5 }, | |
[39] = { 0x00A804, 0x069DE5 }, | |
[40] = { 0x060527, 0x000F46 }, | |
[41] = { 0x060527, 0x000F46 }, | |
[42] = { 0x009A1D, 0x068FFE }, | |
[43] = { 0x009A1D, 0x068FFE }, | |
[44] = { 0x0606AE, 0x0010CD }, | |
[45] = { 0x0606AE, 0x0010CD }, | |
[46] = { 0x069DBA, 0x00A7D9 }, | |
[47] = { 0x069DBA, 0x00A7D9 }, | |
[48] = { 0x069025, 0x009A44 }, | |
[49] = { 0x069025, 0x009A44 }, | |
[50] = { 0x060527, 0x000F46 }, | |
[51] = { 0x060527, 0x000F46 }, | |
[52] = { 0x00A800, 0x069DE1 }, | |
[53] = { 0x00A800, 0x069DE1 }, | |
[54] = { 0x0606AE, 0x0010CD }, | |
[55] = { 0x0606AE, 0x0010CD }, | |
[56] = { 0x06054E, 0x000F6D }, | |
[57] = { 0x06054E, 0x000F6D }, | |
[58] = { 0x069025, 0x009A44 }, | |
[59] = { 0x069025, 0x009A44 }, | |
[60] = { 0x0606D5, 0x0010F4 }, | |
[61] = { 0x0606D5, 0x0010F4 }, | |
[62] = { 0x00A800, 0x069DE1 }, | |
[63] = { 0x00A800, 0x069DE1 }, | |
[64] = { 0x060523, 0x000F42 }, | |
[65] = { 0x060523, 0x000F42 }, | |
[66] = { 0x06054E, 0x000F6D }, | |
[67] = { 0x06054E, 0x000F6D }, | |
[68] = { 0x0606AA, 0x0010C9 }, | |
[69] = { 0x0606AA, 0x0010C9 }, | |
[70] = { 0x0606D5, 0x0010F4 }, | |
[71] = { 0x0606D5, 0x0010F4 }, | |
[72] = { 0x069F44, 0x00A963 }, | |
[73] = { 0x069F44, 0x00A963 }, | |
[74] = { 0x060523, 0x000F42 }, | |
[75] = { 0x060523, 0x000F42 }, | |
[76] = { 0x000004, 0x05F5E5 }, | |
[77] = { 0x000004, 0x05F5E5 }, | |
[78] = { 0x0606AA, 0x0010C9 }, | |
[79] = { 0x0606AA, 0x0010C9 }, | |
[80] = { 0x06054A, 0x000F69 }, | |
[81] = { 0x06054A, 0x000F69 }, | |
[82] = { 0x069F44, 0x00A963 }, | |
[83] = { 0x069F44, 0x00A963 }, | |
[84] = { 0x0606D1, 0x0010F0 }, | |
[85] = { 0x0606D1, 0x0010F0 }, | |
[86] = { 0x000004, 0x05F5E5 }, | |
[87] = { 0x000004, 0x05F5E5 }, | |
[88] = { 0x069F6B, 0x00A98A }, | |
[89] = { 0x069F6B, 0x00A98A }, | |
[90] = { 0x06054A, 0x000F69 }, | |
[91] = { 0x06054A, 0x000F69 }, | |
[92] = { 0x05F60C, 0x00002B }, | |
[93] = { 0x05F60C, 0x00002B }, | |
[94] = { 0x0606D1, 0x0010F0 }, | |
[95] = { 0x0606D1, 0x0010F0 }, | |
[96] = { 0x069F40, 0x00A95F }, | |
[97] = { 0x069F40, 0x00A95F }, | |
[98] = { 0x069F6B, 0x00A98A }, | |
[99] = { 0x069F6B, 0x00A98A }, | |
[100] = { 0x000000, 0x05F5E1 }, | |
[101] = { 0x000000, 0x05F5E1 }, | |
[102] = { 0x05F60C, 0x00002B }, | |
[103] = { 0x05F60C, 0x00002B }, | |
[104] = { 0x068E7B, 0x00989A }, | |
[105] = { 0x068E7B, 0x00989A }, | |
[106] = { 0x069F40, 0x00A95F }, | |
[107] = { 0x069F40, 0x00A95F }, | |
[108] = { 0x069002, 0x009A21 }, | |
[109] = { 0x069002, 0x009A21 }, | |
[110] = { 0x000000, 0x05F5E1 }, | |
[111] = { 0x000000, 0x05F5E1 }, | |
[112] = { 0x069F67, 0x00A986 }, | |
[113] = { 0x069F67, 0x00A986 }, | |
[114] = { 0x068E7B, 0x00989A }, | |
[115] = { 0x068E7B, 0x00989A }, | |
[116] = { 0x05F608, 0x000027 }, | |
[117] = { 0x05F608, 0x000027 }, | |
[118] = { 0x069002, 0x009A21 }, | |
[119] = { 0x069002, 0x009A21 }, | |
[120] = { 0x068EA2, 0x0098C1 }, | |
[121] = { 0x068EA2, 0x0098C1 }, | |
[122] = { 0x069F67, 0x00A986 }, | |
[123] = { 0x069F67, 0x00A986 }, | |
[124] = { 0x069029, 0x009A48 }, | |
[125] = { 0x069029, 0x009A48 }, | |
[126] = { 0x05F608, 0x000027 }, | |
[127] = { 0x05F608, 0x000027 }, | |
[128] = { 0x068E77, 0x009896 }, | |
[129] = { 0x068E77, 0x009896 }, | |
[130] = { 0x068EA2, 0x0098C1 }, | |
[131] = { 0x068EA2, 0x0098C1 }, | |
[132] = { 0x009A1D, 0x068FFE }, | |
[133] = { 0x009A1D, 0x068FFE }, | |
[134] = { 0x069029, 0x009A48 }, | |
[135] = { 0x069029, 0x009A48 }, | |
[136] = { 0x05F76B, 0x00018A }, | |
[137] = { 0x05F76B, 0x00018A }, | |
[138] = { 0x068E77, 0x009896 }, | |
[139] = { 0x068E77, 0x009896 }, | |
[140] = { 0x060527, 0x000F46 }, | |
[141] = { 0x060527, 0x000F46 }, | |
[142] = { 0x009A1D, 0x068FFE }, | |
[143] = { 0x009A1D, 0x068FFE }, | |
[144] = { 0x068E9E, 0x0098BD }, | |
[145] = { 0x068E9E, 0x0098BD }, | |
[146] = { 0x05F76B, 0x00018A }, | |
[147] = { 0x05F76B, 0x00018A }, | |
[148] = { 0x069025, 0x009A44 }, | |
[149] = { 0x069025, 0x009A44 }, | |
[150] = { 0x060527, 0x000F46 }, | |
[151] = { 0x060527, 0x000F46 }, | |
[152] = { 0x05F792, 0x0001B1 }, | |
[153] = { 0x05F792, 0x0001B1 }, | |
[154] = { 0x068E9E, 0x0098BD }, | |
[155] = { 0x068E9E, 0x0098BD }, | |
[156] = { 0x06054E, 0x000F6D }, | |
[157] = { 0x06054E, 0x000F6D }, | |
[158] = { 0x069025, 0x009A44 }, | |
[159] = { 0x069025, 0x009A44 }, | |
[160] = { 0x05F767, 0x000186 }, | |
[161] = { 0x05F767, 0x000186 }, | |
[162] = { 0x05F792, 0x0001B1 }, | |
[163] = { 0x05F792, 0x0001B1 }, | |
[164] = { 0x060523, 0x000F42 }, | |
[165] = { 0x060523, 0x000F42 }, | |
[166] = { 0x06054E, 0x000F6D }, | |
[167] = { 0x06054E, 0x000F6D }, | |
[168] = { 0x069DBD, 0x00A7DC }, | |
[169] = { 0x069DBD, 0x00A7DC }, | |
[170] = { 0x05F767, 0x000186 }, | |
[171] = { 0x05F767, 0x000186 }, | |
[172] = { 0x069F44, 0x00A963 }, | |
[173] = { 0x069F44, 0x00A963 }, | |
[174] = { 0x060523, 0x000F42 }, | |
[175] = { 0x060523, 0x000F42 }, | |
[176] = { 0x05F78E, 0x0001AD }, | |
[177] = { 0x05F78E, 0x0001AD }, | |
[178] = { 0x069DBD, 0x00A7DC }, | |
[179] = { 0x069DBD, 0x00A7DC }, | |
[180] = { 0x06054A, 0x000F69 }, | |
[181] = { 0x06054A, 0x000F69 }, | |
[182] = { 0x069F44, 0x00A963 }, | |
[183] = { 0x069F44, 0x00A963 }, | |
[184] = { 0x00A803, 0x069DE4 }, | |
[185] = { 0x00A803, 0x069DE4 }, | |
[186] = { 0x05F78E, 0x0001AD }, | |
[187] = { 0x05F78E, 0x0001AD }, | |
[188] = { 0x069F6B, 0x00A98A }, | |
[189] = { 0x069F6B, 0x00A98A }, | |
[190] = { 0x06054A, 0x000F69 }, | |
[191] = { 0x06054A, 0x000F69 }, | |
[192] = { 0x069DB9, 0x00A7D8 }, | |
[193] = { 0x069DB9, 0x00A7D8 }, | |
[194] = { 0x00A803, 0x069DE4 }, | |
[195] = { 0x00A803, 0x069DE4 }, | |
[196] = { 0x069F40, 0x00A95F }, | |
[197] = { 0x069F40, 0x00A95F }, | |
[198] = { 0x069F6B, 0x00A98A }, | |
[199] = { 0x069F6B, 0x00A98A }, | |
[200] = { 0x0606AD, 0x0010CC }, | |
[201] = { 0x0606AD, 0x0010CC }, | |
[202] = { 0x069DB9, 0x00A7D8 }, | |
[203] = { 0x069DB9, 0x00A7D8 }, | |
[204] = { 0x068E7B, 0x00989A }, | |
[205] = { 0x068E7B, 0x00989A }, | |
[206] = { 0x069F40, 0x00A95F }, | |
[207] = { 0x069F40, 0x00A95F }, | |
[208] = { 0x069DE0, 0x00A7FF }, | |
[209] = { 0x069DE0, 0x00A7FF }, | |
[210] = { 0x0606AD, 0x0010CC }, | |
[211] = { 0x0606AD, 0x0010CC }, | |
[212] = { 0x069F67, 0x00A986 }, | |
[213] = { 0x069F67, 0x00A986 }, | |
[214] = { 0x068E7B, 0x00989A }, | |
[215] = { 0x068E7B, 0x00989A }, | |
[216] = { 0x0606D4, 0x0010F3 }, | |
[217] = { 0x0606D4, 0x0010F3 }, | |
[218] = { 0x069DE0, 0x00A7FF }, | |
[219] = { 0x069DE0, 0x00A7FF }, | |
[220] = { 0x068EA2, 0x0098C1 }, | |
[221] = { 0x068EA2, 0x0098C1 }, | |
[222] = { 0x069F67, 0x00A986 }, | |
[223] = { 0x069F67, 0x00A986 }, | |
[224] = { 0x0606A9, 0x0010C8 }, | |
[225] = { 0x0606A9, 0x0010C8 }, | |
[226] = { 0x0606D4, 0x0010F3 }, | |
[227] = { 0x0606D4, 0x0010F3 }, | |
[228] = { 0x068E77, 0x009896 }, | |
[229] = { 0x068E77, 0x009896 }, | |
[230] = { 0x068EA2, 0x0098C1 }, | |
[231] = { 0x068EA2, 0x0098C1 }, | |
[232] = { 0x000003, 0x05F5E4 }, | |
[233] = { 0x000003, 0x05F5E4 }, | |
[234] = { 0x0606A9, 0x0010C8 }, | |
[235] = { 0x0606A9, 0x0010C8 }, | |
[236] = { 0x05F76B, 0x00018A }, | |
[237] = { 0x05F76B, 0x00018A }, | |
[238] = { 0x068E77, 0x009896 }, | |
[239] = { 0x068E77, 0x009896 }, | |
[240] = { 0x0606D0, 0x0010EF }, | |
[241] = { 0x0606D0, 0x0010EF }, | |
[242] = { 0x000003, 0x05F5E4 }, | |
[243] = { 0x000003, 0x05F5E4 }, | |
[244] = { 0x068E9E, 0x0098BD }, | |
[245] = { 0x068E9E, 0x0098BD }, | |
[246] = { 0x05F76B, 0x00018A }, | |
[247] = { 0x05F76B, 0x00018A }, | |
[248] = { 0x05F60B, 0x00002A }, | |
[249] = { 0x05F60B, 0x00002A }, | |
[250] = { 0x0606D0, 0x0010EF }, | |
[251] = { 0x0606D0, 0x0010EF }, | |
[252] = { 0x05F792, 0x0001B1 }, | |
[253] = { 0x05F792, 0x0001B1 }, | |
[254] = { 0x068E9E, 0x0098BD }, | |
[255] = { 0x068E9E, 0x0098BD }, | |
}; | |
bool only01(uint32_t n) | |
{ | |
uint32_t i = n & 0xff; | |
uint32_t r = n >> 8; | |
return map01[i][0] == r || map01[i][1] == r; | |
} | |
int main(void) | |
{ | |
uint32_t i; | |
for (i = 0; i < 2000000000; i++) { | |
if (only01(i)) printf("%09u\n", i); | |
} | |
return 0; | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment