programa en C ++ para encontrar n-ésimo elemento de la X-OR secuencia

En este programa en C ++, vamos a aprender cómo encontrar el enésimo elemento de la secuencia X-O ? Aquí, estamos hablando de aproximadamente dos métodos 1) class Método y 2) Efficient Method.

Para encontrar el X-O serie hay dos métodos,

  1. método Naive: Este es el método básico en el que tenemos que hacer X-OR de todos los números e imprimir el último número . Es la complejidad es O (n) ya que tenemos que atravesar la matriz sólo una vez.
  2. método eficiente A medida que el X-O serie sigue un patrón simple que sólo podemos encontrar el resultado en tiempo constante O (1) tiempo de complejidad:

    1. Tome módulo de n
    2. Si resto es 0 resultado = n
    3. Si resto es 1 resultado = 1
    4. Si resto es 2 resultado = n + 1
    5. Si resto es 3 resultado = 0

programa en C ++:

#include <iostream>
using namespace std;
int sequence(int n)
{
int a;
switch(n%4)
{
case 0:
a=n;
break;
case 1:
a=1;
break;
case 2:
a=n+1;
break;
case 3:
a=0;
break;
}
return a;
}
//main function
int main(){
int n;
//input number
cin>>n;
int result=sequence(n);
cout<<result<<endl;
return 0;
}

salida

First run:
127
0
Second run:
5
1

Explicación:

    Number      X-OR 1 to N     modulo 4
1 0001 1 (1)
2 0011 2 (n+1)
3 0000 3 (0)
4 0100 0 (n)
5 0001 1 (1)
6 0111 2 (n+1)
7 0000 3 (0)
8 1000 0 (n)


Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *