import java.awt.*;
import java.awt.event.*;
import java.applet.*;

public class qs extends Applet
{ private GridBagLayout gbl;
  private GridBagConstraints gbc;
  private Button calc;
  private TextField Zahl,Quersumme;
         
  //Methode zum Hinzufügen neuer Elemente zum GridBagLayout
  private void neu(Component com,
                   GridBagLayout l, GridBagConstraints c,
                   int x, int y, int b, int h) //x,y-Koordinaten, Breite, Höhe
  { c.gridx=x; c.gridy=y;
    c.gridwidth=b; c.gridheight=h;
    l.setConstraints(com,c);
    add(com);
  } 

  public void init()
  { setBackground(Color.white);
    gbl=new GridBagLayout();
    setLayout(gbl);
    gbc=new GridBagConstraints();
    gbc.insets=new Insets(3,3,3,3);
    gbc.fill=GridBagConstraints.BOTH;
    neu(new Label("Zahl:"),gbl,gbc,0,0,1,1);
    neu(Zahl=new TextField("",10),gbl,gbc,1,0,1,1);
    Zahl.setEditable(true);
    neu(calc=new Button("berechnen"),gbl,gbc,1,1,1,1);
    ButtonListener bl=new ButtonListener();
    calc.addActionListener(bl);
    neu(new Label("Quersumme:"),gbl,gbc,0,2,1,1);
    neu(Quersumme=new TextField("",10),gbl,gbc,1,2,1,1);
  }
  
  public int length_int(long z)
  { int i=0;
    long t=1; 
    while (z/t > 0)
    { t=t*10;
      i++;
    }
    return i;
  }
  
  public long potenz_10(int z)
  { int i;
    long p=1;
    for (i=1;i<=z;i++) p=p*10;
    return p;
  }  
  
  public long qs(long z)
  { long s,t;
    while (z>9)
    { s=0;
      while (z>0)
      { t=potenz_10(length_int(z)-1);
        s=s+z/t;
        z=z-(z/t)*t;
      }
      z=s;
    }
    return z;
  }          
  
  public class ButtonListener implements ActionListener
  { public void actionPerformed(ActionEvent e)
    { if (e.getActionCommand().equals("berechnen"))
        Quersumme.setText(String.valueOf(qs(Integer.parseInt(Zahl.getText()))));
    }
  }

}        

