3007. Maximum Number That Sum of the Prices Is Less Than or Equal to K Medium

@problem@discussion
#Binary Search#Dynamic Programming#Bit Manipulation



1/**
2 * [3007] Maximum Number That Sum of the Prices Is Less Than or Equal to K
3 *
4 * You are given an integer k and an integer x. The price of a number num is calculated by the count of <span data-keyword="set-bit">set bits</span> at positions x, 2x, 3x, etc., in its binary representation, starting from the least significant bit. The following table contains examples of how price is calculated.
5 * <table border="1">
6 * 	<tbody>
7 * 		<tr>
8 * 			<th>x</th>
9 * 			<th>num</th>
10 * 			<th>Binary Representation</th>
11 * 			<th>Price</th>
12 * 		</tr>
13 * 		<tr>
14 * 			<td>1</td>
15 * 			<td>13</td>
16 * 			<td><u>0</u><u>0</u><u>0</u><u>0</u><u>0</u><u>1</u><u>1</u><u>0</u><u>1</u></td>
17 * 			<td>3</td>
18 * 		</tr>
19 * 		<tr>
20 * 			<td>2</td>
21 * 			<td>13</td>
22 * 			<td>0<u>0</u>0<u>0</u>0<u>1</u>1<u>0</u>1</td>
23 * 			<td>1</td>
24 * 		</tr>
25 * 		<tr>
26 * 			<td>2</td>
27 * 			<td>233</td>
28 * 			<td>0<u>1</u>1<u>1</u>0<u>1</u>0<u>0</u>1</td>
29 * 			<td>3</td>
30 * 		</tr>
31 * 		<tr>
32 * 			<td>3</td>
33 * 			<td>13</td>
34 * 			<td><u>0</u>00<u>0</u>01<u>1</u>01</td>
35 * 			<td>1</td>
36 * 		</tr>
37 * 		<tr>
38 * 			<td>3</td>
39 * 			<td>362</td>
40 * 			<td><u>1</u>01<u>1</u>01<u>0</u>10</td>
41 * 			<td>2</td>
42 * 		</tr>
43 * 	</tbody>
44 * </table>
45 * The accumulated price of num is the total price of numbers from 1 to num. num is considered cheap if its accumulated price is less than or equal to k.
46 * Return the greatest cheap number.
47 *  
48 * <strong class="example">Example 1:
49 * <div class="example-block">
50 * Input: <span class="example-io">k = 9, x = 1</span>
51 * Output: <span class="example-io">6</span>
52 * Explanation:
53 * As shown in the table below, 6 is the greatest cheap number.
54 * <table border="1">
55 * 	<tbody>
56 * 		<tr>
57 * 			<th>x</th>
58 * 			<th>num</th>
59 * 			<th>Binary Representation</th>
60 * 			<th>Price</th>
61 * 			<th>Accumulated Price</th>
62 * 		</tr>
63 * 		<tr>
64 * 			<td>1</td>
65 * 			<td>1</td>
66 * 			<td><u>0</u><u>0</u><u>1</u></td>
67 * 			<td>1</td>
68 * 			<td>1</td>
69 * 		</tr>
70 * 		<tr>
71 * 			<td>1</td>
72 * 			<td>2</td>
73 * 			<td><u>0</u><u>1</u><u>0</u></td>
74 * 			<td>1</td>
75 * 			<td>2</td>
76 * 		</tr>
77 * 		<tr>
78 * 			<td>1</td>
79 * 			<td>3</td>
80 * 			<td><u>0</u><u>1</u><u>1</u></td>
81 * 			<td>2</td>
82 * 			<td>4</td>
83 * 		</tr>
84 * 		<tr>
85 * 			<td>1</td>
86 * 			<td>4</td>
87 * 			<td><u>1</u><u>0</u><u>0</u></td>
88 * 			<td>1</td>
89 * 			<td>5</td>
90 * 		</tr>
91 * 		<tr>
92 * 			<td>1</td>
93 * 			<td>5</td>
94 * 			<td><u>1</u><u>0</u><u>1</u></td>
95 * 			<td>2</td>
96 * 			<td>7</td>
97 * 		</tr>
98 * 		<tr>
99 * 			<td>1</td>
100 * 			<td>6</td>
101 * 			<td><u>1</u><u>1</u><u>0</u></td>
102 * 			<td>2</td>
103 * 			<td>9</td>
104 * 		</tr>
105 * 		<tr>
106 * 			<td>1</td>
107 * 			<td>7</td>
108 * 			<td><u>1</u><u>1</u><u>1</u></td>
109 * 			<td>3</td>
110 * 			<td>12</td>
111 * 		</tr>
112 * 	</tbody>
113 * </table>
114 * </div>
115 * <strong class="example">Example 2:
116 * <div class="example-block">
117 * Input: <span class="example-io">k = 7, x = 2</span>
118 * Output: <span class="example-io">9</span>
119 * Explanation:
120 * As shown in the table below, 9 is the greatest cheap number.
121 * <table border="1">
122 * 	<tbody>
123 * 		<tr>
124 * 			<th>x</th>
125 * 			<th>num</th>
126 * 			<th>Binary Representation</th>
127 * 			<th>Price</th>
128 * 			<th>Accumulated Price</th>
129 * 		</tr>
130 * 		<tr>
131 * 			<td>2</td>
132 * 			<td>1</td>
133 * 			<td><u>0</u>0<u>0</u>1</td>
134 * 			<td>0</td>
135 * 			<td>0</td>
136 * 		</tr>
137 * 		<tr>
138 * 			<td>2</td>
139 * 			<td>2</td>
140 * 			<td><u>0</u>0<u>1</u>0</td>
141 * 			<td>1</td>
142 * 			<td>1</td>
143 * 		</tr>
144 * 		<tr>
145 * 			<td>2</td>
146 * 			<td>3</td>
147 * 			<td><u>0</u>0<u>1</u>1</td>
148 * 			<td>1</td>
149 * 			<td>2</td>
150 * 		</tr>
151 * 		<tr>
152 * 			<td>2</td>
153 * 			<td>4</td>
154 * 			<td><u>0</u>1<u>0</u>0</td>
155 * 			<td>0</td>
156 * 			<td>2</td>
157 * 		</tr>
158 * 		<tr>
159 * 			<td>2</td>
160 * 			<td>5</td>
161 * 			<td><u>0</u>1<u>0</u>1</td>
162 * 			<td>0</td>
163 * 			<td>2</td>
164 * 		</tr>
165 * 		<tr>
166 * 			<td>2</td>
167 * 			<td>6</td>
168 * 			<td><u>0</u>1<u>1</u>0</td>
169 * 			<td>1</td>
170 * 			<td>3</td>
171 * 		</tr>
172 * 		<tr>
173 * 			<td>2</td>
174 * 			<td>7</td>
175 * 			<td><u>0</u>1<u>1</u>1</td>
176 * 			<td>1</td>
177 * 			<td>4</td>
178 * 		</tr>
179 * 		<tr>
180 * 			<td>2</td>
181 * 			<td>8</td>
182 * 			<td><u>1</u>0<u>0</u>0</td>
183 * 			<td>1</td>
184 * 			<td>5</td>
185 * 		</tr>
186 * 		<tr>
187 * 			<td>2</td>
188 * 			<td>9</td>
189 * 			<td><u>1</u>0<u>0</u>1</td>
190 * 			<td>1</td>
191 * 			<td>6</td>
192 * 		</tr>
193 * 		<tr>
194 * 			<td>2</td>
195 * 			<td>10</td>
196 * 			<td><u>1</u>0<u>1</u>0</td>
197 * 			<td>2</td>
198 * 			<td>8</td>
199 * 		</tr>
200 * 	</tbody>
201 * </table>
202 * </div>
203 *  
204 * Constraints:
205 * 
206 * 	1 <= k <= 10^15
207 * 	1 <= x <= 8
208 * 
209 */
210pub struct Solution {}
211
212// problem: https://leetcode.com/problems/maximum-number-that-sum-of-the-prices-is-less-than-or-equal-to-k/
213// discuss: https://leetcode.com/problems/maximum-number-that-sum-of-the-prices-is-less-than-or-equal-to-k/discuss/?currentPage=1&orderBy=most_votes&query=
214
215// submission codes start here
216
217impl Solution {
218    pub fn find_maximum_number(k: i64, x: i32) -> i64 {
219        
220    }
221}
222
223// submission codes end
224
225#[cfg(test)]
226mod tests {
227    use super::*;
228
229    #[test]
230    fn test_3007() {
231    }
232}
233


Back
© 2025 bowen.ge All Rights Reserved.