Среди всех натуральных чентырехзначных чисел подсчитать кол-во таких, сумма квадратов...

0 голосов
38 просмотров

Среди всех натуральных чентырехзначных чисел подсчитать кол-во таких, сумма квадратов цифр, которых кратна двум или трем.


Информатика (15 баллов) | 38 просмотров
Дано ответов: 2
0 голосов
Правильный ответ

Var
    x, s, k, i: integer;

begin
    for i := 1000 to 9999 do
    begin
        x := i;
        s := 0;
        while x > 0 do
        begin
            s := s + (x mod 10) * (x mod 10);
            x := x div 10;
        end;
        if (s mod 2 = 0) or (s mod 3 = 0) then begin
            k := k + 1;
            {writeln(i:5,s:5);}
        end;
    end;
    
    writeln(k);
end.

Ответ 6216

(53.1k баллов)
0

For i = 1000 To 9999
s = CInt(CInt(Mid(CStr(i), 1, 1)) + CInt(Mid(CStr(i), 2, 1)) + CInt(Mid(CStr(i), 3, 1)) + CInt(Mid(CStr(i), 4, 1)))
If s = 18 Then
If i Mod 2 = 0 Then d += 1
If i Mod 3 = 0 Then d += 1
End If
Next

0

Перепроверил, ошибки быть неможет

0

"сумма квадратов цифр" а не просто сумма цифр. и причем тут s=18?

0

кстати сама завтыкала эти квадраты)

0

ошибся..делал две задачи параллельно..перепутал.. Но все же.. я переделал и получились разные ответы..

Надо удостоверится,что мы оба понимаем правильно условия задачи..
Четырех значное число разделяем на четыре символа, возводим каждый символ(число) в квадрат и после этого складываем..
Следующим действием проверяем остается ли остаток при делении на 2 и на 3.. Т

0

Так?

0

да, и у вас еще дважды засчитывается число которое делится на и на 2 и на 3

0

Да. все верно, благодарю

0

6216

0

теперь сошлись)

0 голосов

У меня получилось 6216

Dim i As Integer 
Dim s As Integer
Dim d As Integer

For i = 1000 To 9999       
     s = CInt((CInt(Mid(CStr(i), 1, 1))) ^ 2 + (CInt(Mid(CStr(i), 2, 1))) ^ 2 + (CInt(Mid(CStr(i), 3, 1))) ^ 2 + (CInt(Mid(CStr(i), 4, 1))) ^ 2)     
      If s Mod 2 = 0 Or s Mod 3 = 0 Then d += 1     
  Next
        MsgBox(d)

P.S.Прошу прощения за прошлый ответ, перепутал и соединил две задачи=)

(3.2k баллов)
0

Больше 5000 символов не дает ввести=)

0

у вас ошибочка, у меня другой ответ