program main implicit none integer :: zahl = 0, z2 integer :: backwards, backwards_it integer :: q1, q2 write (*,"(A,$)") "Bitte eine Zahl eingeben: " read (*,*) zahl z2 = zahl q1 = backwards ( zahl ) write (*,*) "" q2 = backwards_it ( zahl ) write (*, "(/A,I5,I5)") "Quersummen: ", q1, q2 end program ! rekursive Lösung recursive integer FUNCTION backwards ( zahl ) result (erg) implicit none integer zahl integer tmp if (zahl > 0) then tmp = mod(zahl, 10) write (*,"(I2,$)") tmp erg = tmp + backwards ( zahl / 10 ) return endif erg = 0 end function ! iterative Lösung integer FUNCTION backwards_it ( zahl ) result (erg) implicit none integer zahl integer tmp erg = 0; do while (zahl > 0) tmp = mod(zahl, 10) write (*,"(I2,$)") tmp erg = erg + tmp zahl = zahl / 10 enddo return end function