Heim > Backend-Entwicklung > C++ > Verwenden Sie C++, um ein Programm zu schreiben, das eine Zahl findet, deren Ziffernsumme eine gerade Zahl ist.

Verwenden Sie C++, um ein Programm zu schreiben, das eine Zahl findet, deren Ziffernsumme eine gerade Zahl ist.

WBOY
Freigeben: 2023-08-28 23:49:07
nach vorne
1323 Leute haben es durchsucht

Verwenden Sie C++, um ein Programm zu schreiben, das eine Zahl findet, deren Ziffernsumme eine gerade Zahl ist.

Eine ganze Zahl, die gleichmäßig durch 2 teilbar ist, ist eine gerade Zahl. In diesem Artikel erhalten wir also eine Zahl n und müssen die n-te Zahl finden, deren Summe gerade ist. Die Zahlen, deren Summe der ersten fünf Zahlen eine gerade Zahl ist, sind 2, 4, 6, 8 und 11. Zum Beispiel −

Input : n = 5
Output : 11
Explanation : First 5 numbers with even sum of digits are 2, 4, 6, 8, 11 i.e 5th
number is 11.

Input : 12
Output : 24
Nach dem Login kopieren

Methoden zum Finden der Lösung

Jetzt lernen Sie zwei verschiedene Methoden kennen, um die Lösung für ein bestimmtes Problem zu finden.

Naive Methode

Eine einfache Möglichkeit, die n-te Zahl zu finden, besteht darin, die Zahlen beginnend bei 1 zu durchlaufen und zu prüfen, ob die Summe der Ziffern für jede Zahl gerade ist. Wenn ja, erhöhen Sie den Zähler um 1, bis der Wert erreicht ist Zähler ist gleich n. Die letzte n-te Zahl ist die Antwort.

Effiziente Methode

Eine effiziente Methode besteht darin, zunächst die Startzahlen mit geraden Summen zu überprüfen und nach einem Muster zu suchen, um die Antwort zu finden. Die ersten 20 Zahlen mit geraden Summen sind 2, 4, 6, 8, 11, 13, 15, 17, 19, 20, 22, 24, 26, 28, 31, 33, 35, 37, 39 und 40. Wenn wir diese ersten 20 Zahlen betrachten, stellen wir fest, dass, wenn die einzelne Ziffer von n zwischen 0 und 4 liegt, die n-te Zahl 2*n ist, und wenn die n-te Zahl zwischen 5 und 9 liegt, dann ist die n-te Zahl 2* n. Die Zahl ist (2*n+1).

Beispiel

#include <bits/stdc++.h>
using namespace std;
int main () {
   long long int n = 13;
   long long int result;
   // finding the last digit of n
   int last_digit = n % 10;
   // checking if last digit is between 0 and 4
   if (last_digit >= 0 && last_digit <= 4)
      result = 2 * n;
      // checking if last digit is between 5 and 9
   else
      result = (2 * n) + 1;
   cout << "nth Number with even sum of digits: " << result;
   return 0;
}
Nach dem Login kopieren

Ausgabe

nth Number with even sum of digits: 26
Nach dem Login kopieren

Erklärung des obigen Codes

  • Suchen Sie die letzte Ziffer und prüfen Sie, ob sie zwischen 0 und 4 liegt. Wenn ja, speichern Sie 2*n als Antwort in der Ergebnisvariablen.
  • Andernfalls prüfen Sie, ob die letzte Ziffer zwischen 5 und 9 liegt. Wenn ja, speichern Sie 2*n + 1 als Antwort in der Ergebnisvariablen.
  • Drucken Sie die n-te Zahl mit einer geraden Anzahl von Ziffern und der in der Ergebnisvariablen gespeicherten Summe.

Fazit

In diesem Artikel haben wir das Problem besprochen, die n-te Zahl mit einer geraden Anzahl von Ziffern zu finden, und wir können dieses Problem auf zwei Arten lösen, die in diesem Artikel vorgestellt werden. Wir haben auch einen C++-Code geschrieben, um das gleiche Problem zu lösen. Wir können diesen Code in anderen Sprachen wie C, Java, Python usw. schreiben. Ich hoffe, Sie finden diesen Artikel hilfreich.

Das obige ist der detaillierte Inhalt vonVerwenden Sie C++, um ein Programm zu schreiben, das eine Zahl findet, deren Ziffernsumme eine gerade Zahl ist.. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:tutorialspoint.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage