Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Центр помощи > операции с числами через функцию


Автор: pirat2k 14.6.2016, 21:33
Из заданного числа вычли сумму его цифр. Из результата вновь вычли сумму его цифр и т.д. Через сколько таких действий получится нуль?

Автор: pirat2k 14.6.2016, 22:21
Код

uses crt;
function sum(n:integer):integer;
var s:integer;
begin
s:=0;
while n>0 do
 begin
  s:=s+n mod 10;
  n:=n div 10
 end;
sum:=s
end;
var n,k:integer;
begin
write('n=');
read(n);
k:=0;
while n>0 do
 begin
  n:=n-sum(n);
  k:=k+1
 end;
write('k=',k);
end.


Нашел код на паскале этой задаче. Перевел на c#, но зацикливание происходит
Код

namespace ConsoleApplication2
{
    class Program
    {
       static int zero(int otv)
        {

            int s = 0;
            int n=0;
            while (n > 0)
            {
                s = s + n % 10;
                n=n/10;
            }
            otv = s;
            
            return otv;
        }
        static void Main(string[] args)
        {
           
            int n, k;
            k = 0;
            Console.WriteLine("Введите число");
            
            n= Convert.ToInt32(Console.ReadLine());
            
            zero(n);
            while (n > 0)
            {
                n = n - zero(n);
                k = k + 1;
            }
            Console.WriteLine("Через {0} операции будет 0",zero(k));
            Console.ReadLine();
        }
    }
}


Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)