Maison >développement back-end >C++ >nombre heptagonal
Un nombre heptagonal est un nombre qui peut être représenté comme un heptagone. Un nombre heptagonal peut être représenté comme une combinaison de couches successives d'heptagone (polygone à 7 côtés expliqué avec les figures ci-dessous).
Le premier nombre heptagonal est 1. Il peut donc être représenté par un petit point.Le deuxième nombre heptagonal est 7, qui peut être représenté par un heptagone.
Le troisième nombre d'heptagone est 18, qui peut être représenté par un heptagone et combiné avec une couche d'heptagone continue.
Le quatrième nombre heptagonal est 34. Il peut être représenté de la manière indiquée ci-dessus comme un heptagone plus deux couches consécutives d'heptagones, ce qui donne 34.
Des concepts similaires seront utilisés pour d’autres nombres heptagonaux. Suivant la même logique, les premiers nombres heptagonaux sont
1, 7, 18, 34, 55, 81, 112, 148, 189, 235, 286, 342, 403…
Dans ce problème, notre tâche est de donner n'importe quel nombre positif N en entrée et d'imprimer le Nième nombre d'heptagone en sortie.Par exemple,
ENTRÉE : N=6
Sortie : 81
ENTRÉE : N=9
Sortie : 189
Regardons maintenant l'algorithme que nous utiliserons pour résoudre ce problème.Algorithme
$$Heptagonal_{n}:=:frac{n}{2}(5n:-:3)$$
Si nous regardons attentivement cette expression, chaque nombre heptagonal a la forme suivante
$frac{n}{2}(5n:-:3)$, où n représente le nombre de nombres heptagonaux.
Comprenons-le mieux avec un exemple.
Pour n=1, $frac{1}{2}(5:times:1:-:3)$= 1, qui est le premier nombre heptagonal.
Pour n=2, $frac{2}{2}(5:times:2:-:3)$= 7, qui est le deuxième nombre heptagonal.
Quand n=3, $frac{3}{2}(5:times:3:-:3)$= 18, qui est le troisième nombre heptagonal.
Maintenant, vérifions le cas de n=8. Le résultat obtenu par $frac{8}{2}(5:times:8:-:3)$ est 148, qui est en fait le huitième nombre heptagonal dans la séquence de nombres heptagonaux.
Puisque nous pouvons obtenir n'importe quel nième nombre heptagonal en utilisant l'expression ci-dessus, dans notre méthode, nous utiliserons cette expression pour calculer le nième nombre heptagonal, où n peut être n'importe quel nombre positif.
Méthode
Remarque - Nous utiliserons le type de données à virgule flottante au lieu du type de données entier pour éviter toute erreur due aux valeurs décimales lors du calcul du Nième nombre heptagonal à l'aide de la formule ci-dessus. La traduction chinoise de
Exemple
#include <bits/stdc++.h> #include <iostream> using namespace std; //function to calculate nth heptagonal number using formula n/2(5n-3) float heptagonal(float N){ float ans= (N/2)*((5*N) - 3); //to store nth heptagonal number return ans; } int main(){ float N=5; //input float a=heptagonal(N); //store the answer in a variable N=13; float b=heptagonal(N); cout<<a<<endl<<b<<endl; //print the answer return 0; }Sortie
55 403
Complexité temporelle : O(1), car cela ne prend que un temps constant.
Complexité spatiale : O(1), car aucun espace supplémentaire n'est utilisé.
ConclusionJ'espère que vous avez trouvé cet article utile pour apprendre le concept d'impression du nième nombre heptagonal saisi par n'importe quel utilisateur.
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!