#include <iostream>
#include <math.h>
using namespace std;

// Deklarationen
int quersumme(int zahl);
int vr_quersumme(int zahl);

// Implementationen
int main()
{
	int eingabe = 0;
	cout << "Aufgabe 21: Quersumme\n";
	cout << "Bitte eine ganze Zahl > 0 eingeben:";
	cin >> eingabe;
	if(eingabe <= 0)
	{
		cerr << "Die angegebene Zahl ist doof!\n";
		return(1);
	}
	cout << "Die Quersumme von " << eingabe << " ist " << quersumme(eingabe)<< endl;
	cout << "Die vollstaendig reduzierte Quersumme ist " << vr_quersumme(eingabe)<< endl;
	return(0);
}

int quersumme(int zahl)
{
	int rest = zahl, i = 0,qs =0, temp_qs=0,temp_rest=0;
	while(rest != 0)
	{
		temp_rest = (rest/(int)pow(10,i+1)) * (int)pow(10,i+1);
		temp_qs = (rest - temp_rest) / (int)pow(10,i);
		qs += temp_qs;
		rest = temp_rest;
		i++;
	}
	return(qs);
}

int vr_quersumme(int zahl)
{
	int qs = quersumme(zahl);
	if(qs < 10)
	{
		return(qs);
	}else
	{
		return(vr_quersumme(qs));
	}
}
