Table des matières
Instructions
Méthode
Exemple
Sortie
Conclusion
Maison développement back-end C++ Utilisez l'addition ou la soustraction pour obtenir le nombre minimum d'étapes pour N à chaque étape

Utilisez l'addition ou la soustraction pour obtenir le nombre minimum d'étapes pour N à chaque étape

Sep 16, 2023 pm 01:13 PM
ajout Soustraction nombre d'étapes

À partir de l'énoncé du problème ci-dessus, notre tâche est d'obtenir le nombre minimum d'étapes dans chacune desquelles nous pouvons obtenir le nombre N donné en utilisant l'addition ou la soustraction. Nous pouvons comprendre que nous devons imprimer le nombre minimum d'étapes pouvant être effectuées et l'ordre des étapes pour tout entier N donné, en ajoutant et en soustrayant les numéros d'étape pour arriver à un nombre commençant à 0.

Dans cet ensemble de problèmes, nous pouvons ajouter ou soustraire un nombre égal au nombre d'étapes jusqu'à la position actuelle à chaque étape. Par exemple, nous pouvons ajouter 1 ou -1 à l'étape 1. De plus, nous pouvons ajouter 2 ou -2 à l'étape 2 et ainsi de suite. Nous pouvons ajouter ou soustraire des nombres à chaque étape en fonction de la situation.

Le principal défi de ce problème est que nous devons effectuer le nombre minimum d'étapes en partant de 0 pour atteindre N. Comprenons mieux ce problème avec un exemple.

L'exemple ci-dessous vous montrera tous les nombres que nous pouvons obtenir en 2 étapes à partir de 0 en effectuant les opérations ci-dessus.

Utilisez laddition ou la soustraction pour obtenir le nombre minimum détapes pour N à chaque étape

Par exemple, supposons que nous ayons N=1.

Sortie

Minimum no of steps: 1
Sequence of steps: 1
Copier après la connexion

Instructions

Nous pouvons atteindre 1 de deux manières -

  • Ajoutez simplement 1 à l'étape 1 pour passer de 0 à 1, ce qui prend 1 étape.

  • Soustrayez 1 à l'étape 1 pour passer de 0 à -1, puis ajoutez 2 à l'étape 2 pour passer de -1 à 1, ce qui prend 2 étapes.

Puisque la question indique que nous avons besoin du nombre minimum d'étapes pour atteindre n'importe quel nombre N, la sortie souhaitée pour cette entrée sera 1.

Pour, N=3

Sortie

Minimum no of steps: 2
Sequence of steps: 1 2
Copier après la connexion

Instructions

On ajoute 1 à l'étape 1 pour passer de 0 à 1, puis on ajoute 2 à l'étape 2 pour passer de 1 à 3.

Méthode

La meilleure façon de résoudre le problème est d’abord de déterminer si N est positif ou négatif. Nous devons respectivement ajouter ou soustraire le nombre approprié d’étapes pour résoudre le problème.

  • Si N est un nombre positif, continuez à ajouter des étapes jusqu'à ce que la somme soit supérieure ou égale à N.

  • De même, si N est négatif, continuez à soustraire le nombre de pas jusqu'à ce que la somme soit supérieure ou égale à N.

  • Si la somme est égale à N dans le cas ci-dessus, renvoie le nombre d'étapes et l'ordre des étapes. Le principal problème est de gérer la situation lorsque N est dépassé.

Une fois que la somme dépasse N, vérifiez si (somme-N) est paire ou impaire.

  • Si (somme-N) est paire, alors nous devons effectuer une soustraction par étapes de (somme-N)/2 pour atteindre N.

    Comprenons mieux ce cas avec un exemple approprié.

    Pour, N=8

    1+2+3+4=10, ce qui est supérieur à 8.

    Parce que 10-8=2 est un nombre pair. Nous allons donc soustraire par pas de 2/2, soit

    Étape 1. L'ordre des étapes sera donc -1 2 3 4 et le minimum

    Le nombre d'étapes pour atteindre N sera de 4.

  • Si (somme-N) est un nombre impair, déterminez d'abord si le nombre dont la somme dépasse N à l'étape précédente est pair ou impair.

    Si l'étape précédente était impaire, effectuez une étape en ajoutant le numéro de l'étape suivante qui rendra notre (somme-N) paire, puis effectuez les étapes ci-dessus pour obtenir le résultat souhaité.

    Par exemple, N=9

    1+2+3+4=10, ce qui est supérieur à 9.

    Parce que 10-9=1, c'est un nombre impair. L'étape suivante est 5, qui est un nombre impair, nous faisons donc simplement une étape et ajoutons 5 à la somme pour obtenir 15, ce qui fait (somme-N)=6. Effectuer la soustraction à l'étape 3 vous donnera la séquence 1 2 -3 4 5, qui est le résultat souhaité.

    Supposons que l'étape précédente soit un nombre pair, dans ce cas, nous devons effectuer deux étapes, ajouter la i-ème étape et soustraire l'étape (i+1) pour obtenir (somme-N) sous forme de nombre pair pour obtenir la séquence d’étapes souhaitée.

    Pour N=5

    1+2+3=6, plus de 5.

    Puisque (somme-N) =1, nous considérerons la dernière étape lorsque su dépasse le nombre N. Puisqu'il s'agit d'un nombre pair, nous effectuerons deux étapes, l'étape 4 et l'étape 5. Notre tâche est de faire (somme-N) quand même, en ajoutant à l'étape 4 et en soustrayant à l'étape 5, nous pouvons faire (somme-N) même si 1 est soustrait de la somme. Puisque (somme-N) est égale à 0, on obtient N. Par conséquent, la séquence est 1 2 3 4 -5.

Exemple

Voici le code C++ de la méthode -

#include <iostream>
#include <bits/stdc++.h>
using namespace std;
void minimumStep(int n){
   vector <int> steps; // for storing the sequence
   int totalSum=0; 
   int temp=0;
   if(n>=0){   // if n is positive then temp will store positive
      temp=1;
   } else {
      temp=-1;  // n is negative then temp will store negative
   }
   n=abs(n);
   int step=0;
   for(step=1;totalSum<n;step++){  // for storing the steps till sum is not greater than n
      steps.push_back(temp*step);
   
      totalSum=totalSum+step;
   }
   if(totalSum>temp*n) {  //when sum greater than n 
      if(step%2==0) {   //when step is even 
         totalSum=totalSum-n; 
         if((totalSum)%2!=0) { // when totalSum-n is odd
            steps.push_back(temp*step);  //store the addition of next step 
            steps.push_back((temp*-1)*(step+1));  // store the subtraction of next step 
            totalSum--;  //make totalSum even
         }
         int check=(totalSum)/2;
         check--;
         steps[check]=steps[check]*-1; 
		} else {        //when step is odd
         totalSum=totalSum-n;
         if((totalSum)%2!=0)  {  // when totalSum-n is odd 
            steps.push_back(temp*step);   //store the next addition value 
            totalSum+=step; 
            step++;
         }
         int check=(totalSum)/2;
         check--;
         steps[check]=steps[check]*-1;
   
      }
   }
   //print the minimum number of steps taken 
   cout<<"The minimum number of steps : "<<steps.size()<<endl;
   //print the steps is stored in vector
      cout<<"Sequence of steps : ";
   for(int i=0;i<steps.size();i++){
      cout<<steps[i]<<" ";
   }
   
}
int main(){
   int m=17;
   minimumStep(m);
   
   return 0;
}
Copier après la connexion

Sortie

The minimum number of steps : 6
Sequence of steps : 1 -2 3 4 5 6
Copier après la connexion

Complexité temporelle : O(sqrt(N))

Complexité spatiale : O(sqrt(N))

Conclusion

Dans cet article, nous essayons d'expliquer la méthode pour trouver le nombre minimum d'étapes pour atteindre N en ajoutant ou en soustrayant à chaque étape et en imprimant la séquence. J'espère que cet article vous aidera à mieux apprendre ce concept.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Commandes de chat et comment les utiliser
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Comment écrire du code d'addition Python_Tutoriel d'écriture de code d'addition Python Comment écrire du code d'addition Python_Tutoriel d'écriture de code d'addition Python Apr 02, 2024 pm 06:16 PM

1. Ouvrez d’abord la page d’édition Python en ligne. 2. Entrez ensuite le code du programme dans la zone du programme. 3. Cliquez ensuite sur Exécuter dans le coin supérieur gauche, entrez le premier ajout, appuyez sur Entrée et entrez le deuxième ajout. 4. Enfin, appuyez sur Entrée pour obtenir la somme des deux additions. Il s’agit d’un simple code d’ajout de python.

Divisez deux entiers sans utiliser les opérateurs de multiplication, de division et de modulo Divisez deux entiers sans utiliser les opérateurs de multiplication, de division et de modulo Sep 21, 2023 pm 12:41 PM

Dans ce problème, il suffit de diviser deux entiers sans utiliser les opérateurs de multiplication, de division et de modulo. Bien que nous puissions utiliser des opérations d’addition, de multiplication ou de bits. L’énoncé du problème indique que nous obtiendrons deux entiers x et y. Sans utiliser la multiplication, la division ou l'opérateur modulo, nous devons déterminer le quotient de x divisé par y. Exemple d'entrée : x=15, y=5 Sortie : 3 Entrée : x=10, y=4 Sortie : 2 Entrée : x=-20, y=3 Sortie : -6 Méthode Méthode 1 (utiliser des mathématiques simples) ici Dans ce méthode, nous utiliserons un algorithme mathématique simple. Voici une explication étape par étape des étapes que nous suivrons : nous continuerons à soustraire le diviseur (c'est-à-dire y) du dividende (c'est-à-dire x) jusqu'à ce que x soit supérieur ou égal à y. quand y est supérieur à x

Compétences en matière d'exploitation de base de données Oracle : explication détaillée de l'opération de soustraction Compétences en matière d'exploitation de base de données Oracle : explication détaillée de l'opération de soustraction Mar 02, 2024 pm 06:15 PM

En tant que puissant système de gestion de bases de données relationnelles, la base de données Oracle fournit une multitude d'opérations informatiques pour répondre aux besoins des utilisateurs. Dans les opérations quotidiennes de base de données, l'opération de soustraction est une opération courante et importante. Elle peut nous aider à mettre en œuvre l'opération de soustraction des données pour obtenir les résultats dont nous avons besoin. Cet article discutera en détail des techniques liées aux opérations de soustraction dans la base de données Oracle et donnera des exemples de code spécifiques pour aider les lecteurs à mieux comprendre et utiliser cette fonction. 1. Concepts de base des opérations de soustraction dans les données Oracle

Comment faire une soustraction dans Excel Comment faire une soustraction dans Excel Mar 20, 2024 pm 02:46 PM

Excel est un logiciel de bureau indispensable dans notre bureau quotidien, donc pour certaines personnes qui apprennent Excel pour la première fois, elles rencontreront toujours quelques petits problèmes, comme comment faire des soustractions dans Excel. Aujourd'hui, je vais en parler à mes amis. Partagez ceci. Étape de fonctionnement. Les étapes de fonctionnement spécifiques sont ci-dessous. Amis, venez voir de plus près ! 1. Tout d'abord, ouvrez la feuille de données Excel. Excel souhaite effectuer une soustraction via des formules, et les formules sont généralement guidées par le signe égal, donc dans les cellules qui doivent être soustraites, entrez d'abord =, (comme indiqué en rouge ci-dessous) encerclé. partie illustrée). 2. Ensuite, cliquez sur la cellule où se trouve le menu et le nom de la cellule sera automatiquement ajouté à la formule (comme indiqué dans le cercle rouge dans la figure ci-dessous). 3

Explorez la signification et l'application des opérateurs Python : addition, soustraction, multiplication et division Explorez la signification et l'application des opérateurs Python : addition, soustraction, multiplication et division Jan 20, 2024 am 09:21 AM

Compréhension approfondie des opérateurs Python : l'addition, la soustraction, la multiplication, la division et leur signification nécessitent des exemples de code spécifiques. Dans le langage de programmation Python, les opérateurs sont l'un des outils importants pour effectuer diverses opérations mathématiques. Parmi eux, l'addition, la soustraction, la multiplication et la division sont les opérateurs les plus courants. Cet article approfondira la signification de ces opérateurs et comment les utiliser en Python. Opérateur d'addition (+) L'opérateur d'addition est utilisé pour ajouter deux nombres et peut également être utilisé pour concaténer deux chaînes. x=5a=3résultat

Comment créer un design soustractif et embellir des graphiques en PPT Comment créer un design soustractif et embellir des graphiques en PPT Mar 20, 2024 pm 02:00 PM

1. L'espace d'opération d'embellissement de base des graphiques est petit et les éléments d'affichage interférents sont supprimés. Les éléments qui interfèrent avec les données incluent l'arrière-plan, les lignes de quadrillage et les légendes. Ils peuvent être supprimés, embellis et les ombres peuvent être adoucies. 2. Entrez le graphique [PPT], [Ouvrir], cliquez sur [Graphique], sélectionnez [+] et décochez-le [cocher], comme indiqué sur la figure. 3. [Clic droit] pour définir le format de la série de données, cliquez sur [Remplir] et cochez [Pas de remplissage]. Cliquez sur [Colonne de données], cliquez sur [Ombre] pour supprimer l'ombre, sélectionnez [Contour] et colorez [Texte] en blanc. 4. Cliquez sur [Échelle], sélectionnez [Marque d'échelle], ajustez [Type de thème] Aucun, [Couleur] blanc, comme indiqué sur la figure. 5. Supprimez les endroits qui doivent être supprimés pour rendre le tableau plus clair. N'ajoutez pas aveuglément des éléments lors de la conception, faites-le de manière appropriée.

Programme C pour l'addition et la multiplication utilisant des opérations au niveau du bit Programme C pour l'addition et la multiplication utilisant des opérations au niveau du bit Sep 16, 2023 pm 07:49 PM

Les opérateurs au niveau du bit opèrent sur les bits (c'est-à-dire opèrent sur la valeur binaire de l'opérande) Opérateur Description & ET au niveau du bit | OU au niveau du bit ^ XOR au niveau du bit << Décalage à gauche >> Décalage à droite - Complément à deux AND au niveau du bit aba&b000010100111 OU au niveau du bit aba b000011101111 XOR au niveau du bit | aba^b000011101110 Exemple Ce qui suit est un programme C pour l'addition et la multiplication 2 à l'aide d'opérateurs au niveau du bit - Démonstration en direct #include<stdio.h>main(){ inta;

Utilisez pthread pour implémenter l'addition et la soustraction matricielles en C/C++ Utilisez pthread pour implémenter l'addition et la soustraction matricielles en C/C++ Aug 28, 2023 am 09:05 AM

Ici, nous verrons comment effectuer des additions et des soustractions matricielles à l'aide d'un environnement multithread. pthread est utilisé pour exécuter plusieurs threads simultanément en C ou C++. Il existe deux matrices A et B. L'ordre de chaque matrice est (mxn). Chaque fil obtiendra chaque ligne et effectuera une addition ou une soustraction. Donc, pour m lignes, il y a m threads différents. Exemple#include<iostream>#include<pthread.h>#include<cstdlib>#include<cstdint>#defineCORE3#defineMAX3usingnamespacestd;i

See all articles