besondere Sammlung

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; 
}

Supongo que te gusta

Origin blog.csdn.net/m0_48489737/article/details/116405620
Recomendado
Clasificación