C++ (Heitere Zahlen) Zeile löschen!

azdr

Lieutenant
Registriert
Feb. 2005
Beiträge
685
Hi,

Bräuchte mal eure Hilfe also ich hab ein Programm geschrieben welche die "Heiteren Zahlen ausgeben soll. Das Programm funktioniert auch, nur möchte ich halt dass nur die Zeilen ausgegeben werden welche die Zahlen Heiter sind und die anderen nicht.
Ich hab mir überlegt die aktuelle Zeile zu löschen wo am Ende keine 1 rauskommt. Wie lautet der Befehl dafür?
Oder gibts da eine andere elegante Lösung?


Also hier ein Screen vom Programm:


Code:
#include "stdafx.h"
#include "conio.h"
#include "iostream" //deklaration von cin and cout
using namespace std;

int main ()
{int input2, input1,x,y,rest,div,ges=0,temp,temp2;


for(input1=2;input1<101;input1++) 
{
temp2=input1;
cout<<"\n"<<temp2<<" ";

	for(y=1;y<7;y++)
	{

		for(x=1;x<5;x++)
		{
		rest=input1%10;
		input1=input1/10;
		ges=ges+(rest*rest);
		temp=ges;


			if (x==4)
			{	
				cout<<ges<<" ";
				if (ges==1)
				{
					y=7; 
					cout<<" --> Heitere Zahl\n";
				}
				
				ges=0;
			}
		}
	
	input1=temp;
	}

input1=temp2;
}

getch();
}

danke schon mal
 
Was sind "Heitere Zahlen"? o_O

Schreibe doch einfach die Zahlen, die "heiter" sind in ein array, statt sie direkt auszugeben und gib am Ende nur das array aus.
 
Ich hoffe ich habe es verstanden, probier mal das:

Code:
#include "stdafx.h"
#include "conio.h"
#include "iostream" //deklaration von cin and cout
using namespace std;

int main ()
{int input2, input1,x,y,rest,div,ges=0,temp,temp2;

[COLOR="Red"]bool heiter;[/COLOR]

for(input1=2;input1<101;input1++) 
{
temp2=input1;
[COLOR="Red"]heiter = false;[/COLOR]
[COLOR="Red"][s]cout<<"\n"<<temp2<<" ";[/s][/COLOR]

	for(y=1;y<7 [COLOR="Red"]&& !heiter[/COLOR];y++)
	{

		for(x=1;x<5 [COLOR="Red"]&& !heiter[/COLOR];x++)
		{
		rest=input1%10;
		input1=input1/10;
		ges=ges+(rest*rest);
		temp=ges;


			if (x==4)
			{	
				cout<<ges<<" ";
				if (ges==1)
				{
				        [COLOR="Red"][s]y=7;[/s]
                                       [s]cout<<" --> Heitere Zahl\n";[/s]
                                       heiter = true;[/COLOR]
				}
				
				ges=0;
			}
		}
	
	input1=temp;
	}

       [COLOR="Red"]if(heiter) cout << "\n" << temp2;[/COLOR]
input1=temp2;
}

getch();
}

Lg
FSBKiller

PS: Bitte erkläre uns doch mal was denn jetzt genau eine "heitere" Zahl ist!
 
Zuletzt bearbeitet:
Danke für eure Hilfe.
@FSBKiller das Programm gibt aber weiter hin die Zahlen aus , die nicht heiter sind aber trotzdem danke.

@cYaInH3ll ja war ne gute idee mit Arrays klappts wunderbar.

Also Jetzt zur Definition : "Eine Zahl heißt heiter,wenn die Folge der Summe der
Quadrate der Ziffern auf 1 endet." (z.B.: 7 49 97 130 10 1).
die Formel dafür: 7²=49=(4²+9²)=97=(9²+7²)=130..........
Das war ein Hü-Beispiel.


Also so klappt es.

Code:
#include "stdafx.h"
#include "time.h"
#include "conio.h"
#include "iostream" //deklaration von cin and cout
using namespace std;

int main ()
{ int input2,input1,x,y,rest,ges=0,temp,temp2,i=0,r,z=0,t;
  int feld[10]= {1,2,3,4,5,6,7,8,9,10};

for(input1=2;input1<500;input1++)
{
      temp2=input1;
	

		for(y=1;y<10;y++)
		{ 
		r=r+1;

			for(x=1;x<5;x++)
			{
			rest=input1%10;
			input1=input1/10;
			ges=ges+(rest*rest);
			temp=ges;
        
					if (x==4)
					{	
					feld[i] = ges;
					i=i+1;
						if (ges==1)
						{	
						z=z+1;
						y=10; 
						t=r; 
						}				
					ges=0;
					}		
			}
			input1=temp;
		}
      input1=temp2;


      if (z==1)
      {
      cout<<temp2<<"  ";
	 for (i=0;i<t;i++)
	 {
	 cout<<feld[i]<<"  ";
	 }
      cout<<endl;
      }

      i=0;
      z=0;
      r=0;
}

getch();
}
 
Zurück
Oben