Supersumma
ID: super
Grūtība: 1/5
Laika limits: 1
Uzdevums
Jebkuram naturālam skaitlim n var aprēķināt ciparu summu.
Arī šai iegūtajai summai var aprēķināt ciparu summu.
Tā turpinot, kādreiz noteikti iegūs vienciparu skaitli.
Sauksim to par n supersummu.
Uzrakstiet programmu, kas dotiem diviem naturāliem skaitļiem k un m atrod reizinājuma k*m supersummu!
Ievaddati
Teksta faila super.in satur divas rindas.
Pirmajā rindā dota skaitļa k, bet otrajā – skaitļa m vērtība.
Zināms, ka neviena skaitļa ciparu skaits nepārsniedz 200.
Izvaddati
Teksta faila super.out vienīgajā rindā jāizvada viens skaitlis – k*m supersumma.
Piemērs
super.in | super.out |
41 17 |
4 |
Atsauces
Uzdevums izmantots Latvijas 15.informātikas olimpiādes I (skolas) kārtā.
Autors: M.Opmanis
© 2001-2002 olimps! http://www.lio.lv/olimps/
var i,od,code,k_i,m_i:integer; k,m,t:string; f:text; begin Assign(f,'super.in'); Reset(f); readln(f,k); readln(f,m); Close(f); if length(m)>length(k) then begin t:=m; m:=k; k:=t; end; while (length(k)>1) or (length(m)>1) do begin k_i:=0; m_i:=k_i; for i:=1 to length(k) do begin Val(Copy(k,i,1),od,code); k_i:=k_i+od; if i<=length(m) then begin Val(Copy(m,i,1),od,code); m_i:=m_i+od; end; end; Str(k_i,k); Str(m_i,m); if length(m)>length(k) then begin t:=m; m:=k; k:=t; end; end; od:=k_i*m_i; str(od,k); if length(k)>1 then begin k_i:=od div 10 + od mod 10; str(k_i,k); if length(k)>1 then k_i:=k_i div 10 + k_i mod 10; end else k_i:=od; Assign(f,'super.out'); Rewrite(f); write(f,k_i); Close(f); end.
Результат: 10/10