Олимпиадный тренинг

Задача . П 83


Задача

Темы:
Напишите в ответе количество различных значений входной переменной a из интервала от 1 до 100 (включая границы), при которых программа выдаёт тот же ответ, что и при входном значении a = 20. Значение a = 20 также включается в подсчёт различных значений a
Паскаль Си Python
var i, k,a: integer;
function f(x: integer): integer;
begin
  if x >1 then 
    f := x mod 2 + f(x div 2) 
  else 
    f := x;
end;
begin
  k := 0;
  readln(a);  
  for i := 1 to a do   
      if f(i) = 1 then k:=k+1;
  writeln(k); 
end.
#include <stdio.h>
int f(int x)
{ 
  if (x>1) 
   return x%2+f(x/2);
 else
  return x;
}

int main(void) 
{ 
  int i, k, a;
  k=0; 
  scanf("%d",&a); 
  for (i=1; i<=a; i++)
   if (f(i)==1)  
     k = k + 1; 
  printf("%d",k); 
}
 
def f(x):
    if x > 1:
        return x % 2 + f(x // 2)
    else:
        return x

k = 0
a = int(input())
for i in range(1, a+1):
    if f(i) == 1:
        k += 1
print(k)
 

time 1000 ms
memory 32 Mb
Правила оформления программ и список ошибок при автоматической проверке задач

Статистика успешных решений по компиляторам
Комментарий учителя