Titelbeschreibung:
Menge A={1,2,...,n}, Menge B ist eine Teilmenge von A, für jedes Element x in B ist 2x nicht in Menge B. Finden Sie die maximale Anzahl von Elementen in Menge B.
Eingabeformat
Eine Ganzzahl n (1≤n≤ 109).
Das Ausgabeformat
verwendet eine ganze Zahl, um die maximale Anzahl von Elementen in der Menge B anzugeben.
Beispieleingabe
100
Beispielausgabe
67
Analyse:
Diese Frage ... Vergiss es, ich habe eine spezielle Methode verwendet, um diese Frage zu berechnen. Es scheint eine seltsame Denkweise zu sein. Es scheint, dass ich es nicht klar erklären kann ... Aber es sollte möglich sein.
#include<iostream>
#include<algorithm>
using namespace std;
int main() {
long n, m, i, num;
cin >> n;
long total = (n + 1) / 2;
for(i = 1; i <= n / 4; i += 2) {
num = 0;
m = i;
while(m <= n / 2){
num ++;
m *= 2;
}
total += num / 2;
}
cout << total << endl;
return 0;
}