Skip to content

Commit f06c45d

Browse files
authored
feat: add solutions for lc No.1680 (#5056)
1 parent 38af912 commit f06c45d

6 files changed

Lines changed: 199 additions & 0 deletions

File tree

solution/1600-1699/1680.Concatenation of Consecutive Binary Numbers/README.md

Lines changed: 73 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -154,6 +154,39 @@ impl Solution {
154154
}
155155
```
156156

157+
#### JavaScript
158+
159+
```js
160+
/**
161+
* @param {number} n
162+
* @return {number}
163+
*/
164+
var concatenatedBinary = function (n) {
165+
const mod = 1_000_000_007;
166+
let ans = 0;
167+
for (let i = 1; i <= n; i++) {
168+
ans = (((ans * (1 << (32 - Math.clz32(i)))) % mod) + i) % mod;
169+
}
170+
return ans;
171+
};
172+
```
173+
174+
#### C#
175+
176+
```cs
177+
public class Solution {
178+
public int ConcatenatedBinary(int n) {
179+
const int mod = 1000000007;
180+
long ans = 0;
181+
for (int i = 1; i <= n; ++i) {
182+
int bitLength = 32 - System.Numerics.BitOperations.LeadingZeroCount((uint)i);
183+
ans = ((ans << bitLength) | i) % mod;
184+
}
185+
return (int)ans;
186+
}
187+
}
188+
```
189+
157190
<!-- tabs:end -->
158191

159192
<!-- solution:end -->
@@ -273,6 +306,46 @@ impl Solution {
273306
}
274307
```
275308

309+
#### JavaScript
310+
311+
```js
312+
/**
313+
* @param {number} n
314+
* @return {number}
315+
*/
316+
var concatenatedBinary = function (n) {
317+
const mod = 1_000_000_007;
318+
let ans = 0;
319+
let shift = 0;
320+
for (let i = 1; i <= n; i++) {
321+
if ((i & (i - 1)) === 0) {
322+
shift++;
323+
}
324+
ans = (((ans * (1 << shift)) % mod) + i) % mod;
325+
}
326+
return ans;
327+
};
328+
```
329+
330+
#### C#
331+
332+
```cs
333+
public class Solution {
334+
public int ConcatenatedBinary(int n) {
335+
const int mod = 1000000007;
336+
long ans = 0;
337+
int shift = 0;
338+
for (int i = 1; i <= n; ++i) {
339+
if ((i & (i - 1)) == 0) {
340+
++shift;
341+
}
342+
ans = ((ans << shift) | i) % mod;
343+
}
344+
return (int)ans;
345+
}
346+
}
347+
```
348+
276349
<!-- tabs:end -->
277350

278351
<!-- solution:end -->

solution/1600-1699/1680.Concatenation of Consecutive Binary Numbers/README_EN.md

Lines changed: 73 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -155,6 +155,39 @@ impl Solution {
155155
}
156156
```
157157

158+
#### JavaScript
159+
160+
```js
161+
/**
162+
* @param {number} n
163+
* @return {number}
164+
*/
165+
var concatenatedBinary = function (n) {
166+
const mod = 1_000_000_007;
167+
let ans = 0;
168+
for (let i = 1; i <= n; i++) {
169+
ans = (((ans * (1 << (32 - Math.clz32(i)))) % mod) + i) % mod;
170+
}
171+
return ans;
172+
};
173+
```
174+
175+
#### C#
176+
177+
```cs
178+
public class Solution {
179+
public int ConcatenatedBinary(int n) {
180+
const int mod = 1000000007;
181+
long ans = 0;
182+
for (int i = 1; i <= n; ++i) {
183+
int bitLength = 32 - System.Numerics.BitOperations.LeadingZeroCount((uint)i);
184+
ans = ((ans << bitLength) | i) % mod;
185+
}
186+
return (int)ans;
187+
}
188+
}
189+
```
190+
158191
<!-- tabs:end -->
159192

160193
<!-- solution:end -->
@@ -274,6 +307,46 @@ impl Solution {
274307
}
275308
```
276309

310+
#### JavaScript
311+
312+
```js
313+
/**
314+
* @param {number} n
315+
* @return {number}
316+
*/
317+
var concatenatedBinary = function (n) {
318+
const mod = 1_000_000_007;
319+
let ans = 0;
320+
let shift = 0;
321+
for (let i = 1; i <= n; i++) {
322+
if ((i & (i - 1)) === 0) {
323+
shift++;
324+
}
325+
ans = (((ans * (1 << shift)) % mod) + i) % mod;
326+
}
327+
return ans;
328+
};
329+
```
330+
331+
#### C#
332+
333+
```cs
334+
public class Solution {
335+
public int ConcatenatedBinary(int n) {
336+
const int mod = 1000000007;
337+
long ans = 0;
338+
int shift = 0;
339+
for (int i = 1; i <= n; ++i) {
340+
if ((i & (i - 1)) == 0) {
341+
++shift;
342+
}
343+
ans = ((ans << shift) | i) % mod;
344+
}
345+
return (int)ans;
346+
}
347+
}
348+
```
349+
277350
<!-- tabs:end -->
278351

279352
<!-- solution:end -->
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
public class Solution {
2+
public int ConcatenatedBinary(int n) {
3+
const int mod = 1000000007;
4+
long ans = 0;
5+
for (int i = 1; i <= n; ++i) {
6+
int bitLength = 32 - System.Numerics.BitOperations.LeadingZeroCount((uint)i);
7+
ans = ((ans << bitLength) | i) % mod;
8+
}
9+
return (int)ans;
10+
}
11+
}
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
/**
2+
* @param {number} n
3+
* @return {number}
4+
*/
5+
var concatenatedBinary = function (n) {
6+
const mod = 1_000_000_007;
7+
let ans = 0;
8+
for (let i = 1; i <= n; i++) {
9+
ans = (((ans * (1 << (32 - Math.clz32(i)))) % mod) + i) % mod;
10+
}
11+
return ans;
12+
};
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
public class Solution {
2+
public int ConcatenatedBinary(int n) {
3+
const int mod = 1000000007;
4+
long ans = 0;
5+
int shift = 0;
6+
for (int i = 1; i <= n; ++i) {
7+
if ((i & (i - 1)) == 0) {
8+
++shift;
9+
}
10+
ans = ((ans << shift) | i) % mod;
11+
}
12+
return (int)ans;
13+
}
14+
}
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
/**
2+
* @param {number} n
3+
* @return {number}
4+
*/
5+
var concatenatedBinary = function (n) {
6+
const mod = 1_000_000_007;
7+
let ans = 0;
8+
let shift = 0;
9+
for (let i = 1; i <= n; i++) {
10+
if ((i & (i - 1)) === 0) {
11+
shift++;
12+
}
13+
ans = (((ans * (1 << shift)) % mod) + i) % mod;
14+
}
15+
return ans;
16+
};

0 commit comments

Comments
 (0)