Table des matières
Énoncé du problème
Exemple
Solution à l'énoncé du problème
Méthode 1 : Solution violente
pseudocode
Sortie
Méthode 2 utilisant la méthode Newton-Raphson
Conclusion
Maison développement back-end C++ Nombres de pyramides carrées (somme des carrés)

Nombres de pyramides carrées (somme des carrés)

Sep 04, 2023 pm 11:57 PM
nombre carré pyramide

Nombres de pyramides carrées (somme des carrés)

Un nombre pyramidal carré fait référence à la somme des carrés des nombres naturels. Les nombres naturels incluent tous les nombres de 1 à l’infini. Par exemple, les 4 premiers nombres carrés de la pyramide sont 1, 5, 14 et 30.

Pour une meilleure compréhension, considérons le fait suivant : si nous prenons la pyramide carrée des nombres au début et empilons les boules numérotées par ordre décroissant, elles formeront une pyramide.

Énoncé du problème

Étant donné un nombre Somme. Si Sum est la somme des carrés des n premiers nombres naturels, renvoie n, sinon renvoie false.

Exemple 1

se traduit par :

Exemple 1

Input = 30
Output = 4
Copier après la connexion

Explication = 30 est la somme des carrés des 4 premiers nombres naturels.

1*1 + 2*2 + 3*3 +4*4 = 30.
Copier après la connexion

Par conséquent, la sortie devrait être 4.

Exemple 2

Input = 54
Output = -1
Copier après la connexion

Explication = Il n’existe pas de somme des carrés de n nombres naturels égale à 54. Par conséquent, la sortie devrait être -1.

Solution à l'énoncé du problème

Il existe deux solutions à ce problème.

Méthode 1 : Solution violente

La méthode de la force brute commence à n = 1. Créez une variable « total » qui ajoute le carré du nombre naturel suivant à la valeur précédente du total. Renvoie n si le total est égal à Sum, sinon renvoie false si le total est supérieur à Sum.

pseudocode

start
n =1 
While (total < sum ):
   Total += n*n
   n=n+1
if(total == sum) : 
   Return n
Else:
   Return false
end
Copier après la connexion

Exemple

Vous trouverez ci-dessous un programme C++ pour vérifier si un nombre donné est la somme des carrés de nombres naturels.

#include <iostream>
using namespace std;
// This function returns n if the sum of squares of first 
// n natural numbers is equal to the given sum
// Else it returns -1
int square_pyramidal_number(int sum) {
   // initialize total
   int total = 0;
   // Return -1 if Sum is <= 0
   if(sum <= 0){
      return -1;
   }
   
   // Adding squares of the numbers starting from 1
   int n = 0;
   while ( total < sum){
      n++;
      total += n * n;
   }
   
   // If total becomes equal to sum return n
   if (total == sum)
   return n;
   
   return -1;
}
int main(){
   int S = 30;
   int n = square_pyramidal_number(S);
   cout<< "Number of Square Pyramidal Numbers whose sum is 30: "<< endl;
   (n) ? cout << n : cout << "-1";
   return 0;
}
Copier après la connexion

Sortie

Number of Square Pyramidal Numbers whose sum is 30: 
4
Copier après la connexion

Complexité temporelle - O(sum), où sum est l'entrée donnée.

Complexité spatiale - O(1) : aucun espace supplémentaire utilisé.

Méthode 2 utilisant la méthode Newton-Raphson

Une autre méthode est la méthode Newton-Raphson. La méthode de Newton-Raphson est utilisée pour trouver les racines d'une fonction donnée f(x) et une première estimation des racines.

sum of squares of first n natural numbers = n * (n + 1) * (2*n + 1) / 6, 

n * (n + 1) * (2*n + 1) / 6 = sum or 

k * (k + 1) * (2*k + 1) – 6*sum = 0
Copier après la connexion

Donc n est la racine de cette équation cubique et peut être calculé à l'aide de la méthode de Newton-Raphson qui consiste à partir d'une valeur initiale x0 et à utiliser la formule suivante pour trouver la valeur suivante x qui est obtenue à partir de la valeur précédente xn xn+ 1.

$$mathrm{x_{1}=x_{0}-frac{f(x_{0})}{f^{'}(x_{0})}}$$

pseudocode

Start
calculate func(x) and derivativeFunction(x) for given initial x
Compute h: h = func(x) / derivFunc(x)
While h is greater than allowed error ε 
   h = func(x) / derivFunc(x)
   x = x – h
If (x is an integer):
   return x
Else:
   return -1;
end
Copier après la connexion

Exemple

Vous trouverez ci-dessous un programme C++ pour vérifier si un nombre donné est la somme des carrés de nombres naturels.

#include<bits/stdc++.h>
#define EPSILON 0.001
using namespace std;
// According to Newton Raphson Method The function is
// k * (k + 1) * (2*k + 1) – 6*sum or 2*k*k*k + 3*k*k + k - 6*sum                  
double func(double k, int sum){
   return 2*k*k*k + 3*k*k + k - 6*sum;
}
// Derivative of the above function is 6*k*k + 6*k + 1
double derivativeFunction(double k){
   return 6*k*k + 6*k + 1;
}
// Function to check if double is an integer or not
bool isInteger(double N){
   int X = N;
   double temp2 = N - X;
   if (temp2*10 >=1 ) {
      return false;
   }
   return true;
}
// Function that finds the root of k * (k + 1) * (2*k + 1) – 6*sum
int newtonRaphson(double k, int sum){
   double h = func(k, sum) / derivativeFunction(k);
   while (abs(h) >= EPSILON){
      h = func(k, sum)/derivativeFunction(k);
      // k(i+1) = k(i) - f(k) / f'(k)
      k = k - h;
   }
   if (isInteger(k)) {
      return (int)k;
   }
   else {
      return -1;
   }
}
// Driver program
int main(){
   double x0 = 1; // Initial values assumed
   int sum = 91;
   int n = newtonRaphson(x0,sum);
   cout<< "Number of Square Pyramidal Numbers whose sum is 91: "<< endl;
   (n) ? cout << n : cout << "-1";
   return 0;
}
Copier après la connexion

Sortie

Number of Square Pyramidal Numbers whose sum is 91: 
6
Copier après la connexion

Complexité temporelle - O((log n) F(n)) où F(n) est le coût de calcul de f(x)/f'(x), avec une précision à n chiffres.

Complexité spatiale - O(1) : aucun espace supplémentaire utilisé.

Conclusion

Cet article résout le problème de trouver le numéro de la pyramide carrée d'une somme donnée. Nous introduisons deux méthodes : l’une est une méthode par force brute et l’autre est une méthode efficace. Les deux méthodes fournissent des programmes C++.

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)
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Comment déverrouiller tout dans Myrise
4 Il y a quelques semaines 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 saisir un carré de 2 m³ sur un téléphone portable « Introduction détaillée : méthode de saisie des symboles carrés et cubiques » Comment saisir un carré de 2 m³ sur un téléphone portable « Introduction détaillée : méthode de saisie des symboles carrés et cubiques » Feb 07, 2024 am 08:31 AM

Pouvez-vous saisir des carrés et des cubes dans Excel ? Voici plusieurs méthodes de saisie rapide parmi lesquelles choisir. 1. Méthode de saisie De nos jours, les méthodes de saisie sont très intelligentes Lorsque vous tapez « carré » ou « cube », [²] et [m³] apparaîtront automatiquement dans les options. La méthode de saisie illustrée ici est un chien, et le spécifique. on n’est pas spécifié. Vous pouvez tester votre propre méthode de saisie. 2. Définissez l'entrée en exposant. Entrez d'abord [m3] ou [m2] dans la cellule, puis sélectionnez le nombre, cliquez avec le bouton droit de la souris et sélectionnez les paramètres de format de cellule, puis définissez 3 et 2 comme [exposant], puis confirmez. Il sera affiché sous forme de cube ou de carré ; 3. Alt + petite saisie au clavier. Maintenez la touche Alt enfoncée dans la cellule de saisie sans la relâcher, puis appuyez sur le chiffre du petit clavier.

Comment mettre au carré le carré dans Excel Comment mettre au carré le carré dans Excel Mar 20, 2024 am 11:10 AM

Lorsque nous utilisons le logiciel Excel pour créer des tableaux, nous devons parfois utiliser le symbole carré. Alors, comment saisir le symbole carré ? Maintenant, je vais partager avec vous comment saisir le symbole carré dans Excel, ce que de nombreux amis veulent savoir récemment. Comment saisir le symbole carré dans Excel. J'espère que cela pourra vous aider ! Nous voulons saisir le carré dans un fichier Excel, ouvrez d'abord le fichier Excel. Je vais utiliser les mètres carrés comme exemple pour démontrer. Tout d’abord, entrez m2 dans le tableau Excel. Utilisez ensuite la souris pour sélectionner le chiffre 2 en m2, puis cliquez avec le bouton droit et vous verrez une fonction [Formater les cellules]. À ce moment, sélectionnez le bouton [Formater les cellules]. À ce stade, la boîte de dialogue [Formater les cellules] apparaîtra dans le fichier Excel, puis trouvera

Carré moyen des nombres naturels ? Carré moyen des nombres naturels ? Sep 20, 2023 pm 10:29 PM

La moyenne des carrés des nombres naturels est calculée en additionnant tous les carrés de n nombres naturels puis en divisant par ce nombre. Les deux premiers nombres naturels de l'exemple sont 2,5, 12+22=5=>5/2=2,5. Il existe deux méthodes de calcul en programmation : Utiliser des boucles Utiliser des formules Calculer la moyenne des carrés de nombres naturels à l'aide de boucles Cette logique fonctionne en trouvant les carrés de tous les nombres naturels. Trouvez le carré de chacun en bouclant de 1 à n et ajoutez à la variable somme. Divisez ensuite cette somme par n. Programme pour calculer la somme des carrés de nombres naturels - exemple de code de démonstration en temps réel #include<stdio.h>intmain(){ intn=2;

Utilisez C++ pour écrire du code afin de trouver le Nième nombre non carré Utilisez C++ pour écrire du code afin de trouver le Nième nombre non carré Aug 30, 2023 pm 10:41 PM

Nous connaissons tous des nombres qui ne sont le carré d’aucun nombre, comme 2, 3, 5, 7, 8, etc. Il existe N nombres non carrés et il est impossible de connaître tous les nombres. Ainsi, dans cet article, nous expliquerons tout sur les nombres sans carrés ou non carrés et les moyens de trouver le Nième nombre non carré en C++. Nième nombre non carré Si un nombre est le carré d'un entier, alors ce nombre est appelé un carré parfait. Quelques exemples de nombres carrés parfaits sont -1iscarréde14iscarréde29iscarréde316iscarréde425iscarréde5 Si un nombre n'est le carré d'aucun entier, alors le nombre est appelé non carré. Par exemple, les 15 premiers nombres non carrés sont -2,3,5,6,

Top 10 du classement mondial de la plate-forme de trading de devises virtuels numériques (2025 classement faisant autorité) Top 10 du classement mondial de la plate-forme de trading de devises virtuels numériques (2025 classement faisant autorité) Mar 06, 2025 pm 04:36 PM

En 2025, les plateformes mondiales de trading de devises virtuelles numériques sont farouchement compétitives. OKX se classe d'abord avec sa forte force technique et sa stratégie de fonctionnement mondiale, et Binance suit de près avec une liquidité élevée et des frais faibles. Des plates-formes telles que Gate.io, Coinbase et Kraken sont à l'avant-garde avec leurs avantages respectifs. La liste couvre les plateformes de trading telles que Huobi, Kucoin, BitFinex, Crypto.com et Gemini, chacune avec ses propres caractéristiques, mais l'investissement devrait être prudent. Pour choisir une plate-forme, vous devez prendre en compte des facteurs tels que la sécurité, la liquidité, les frais, l'expérience utilisateur, la sélection des devises et la conformité réglementaire, et investir rationnellement

Programme C pour trouver le plus grand facteur premier d'un nombre Programme C pour trouver le plus grand facteur premier d'un nombre Aug 27, 2023 am 10:09 AM

Facteur premier - Dans la théorie des nombres, les facteurs premiers d'un entier positif sont les nombres premiers qui divisent cet entier exactement. Le processus de recherche de ces nombres est appelé factorisation entière ou factorisation première. Exemple - Les facteurs premiers de 288 sont : 288 = 2x2x2x2x2

Programme Java pour créer des pyramides et des modèles Programme Java pour créer des pyramides et des modèles Sep 05, 2023 pm 03:05 PM

Si quelqu'un souhaite acquérir une base solide en langage de programmation Java. Ensuite, il faut comprendre comment fonctionne la boucle. De plus, résoudre les problèmes de modèle pyramidal est le meilleur moyen d’améliorer vos connaissances de base de Java, car cela inclut une utilisation intensive des boucles for et while. Cet article vise à fournir quelques programmes Java pour imprimer des modèles pyramidaux à l'aide de différents types de boucles disponibles en Java. Programme Java pour créer un motif de pyramide Nous imprimerons les modèles de pyramide suivants via le programme Java - Pyramide en étoiles inversée Pyramide en étoiles Pyramide des nombres Discutons-en un par un. Mode 1 : La méthode de la pyramide en étoiles inversée déclare et initialise un entier « n » avec le nombre de lignes spécifié. Ensuite, définissez le décompte initial de l'espace comme 0 et le décompte initial de l'étoile comme "n+

Top 10 des plates-formes de trading de devises numériques La dernière liste des 10 principales plateformes de trading de devises numériques Top 10 des plates-formes de trading de devises numériques La dernière liste des 10 principales plateformes de trading de devises numériques Mar 17, 2025 pm 05:57 PM

Top 10 des plates-formes de trading de devises numériques: 1. Okx, 2. Binance, 3. Gate.io, 4. Huobi Global, 5. Kraken, 6. Coinbase, 7. Kucoin, 8. Bitfinex, 9. Crypto.com, 10. Gemini, ces échanges ont leurs propres caractéristiques et les utilisateurs peuvent choisir la plate-forme qui leur convient sur des facteurs tels que la sécurité, les frais de sécurité, les frais de la sécurité, les frais de sécurité, les arêtes de la sécurité.

See all articles