• Имя входного файла: input.txt или стандартный ввод
    Имя выходного файла: output.txt или стандартный вывод
    Ограничение по времени: 1 секунда
    NN человек, пронумерованных числами от 1 до NN, стоят в кругу. Они начинают считаться, каждый KK-й по счету человек выбывает из круга, после чего счет продолжается со следующего за ним человека.
    Определите номер человека, который останется в кругу последним.
    Программа получает на вход числа NN и KK (1≤N≤1001≤N≤100, 1≤K≤1091≤K≤109), и должна вывести одно число от 1 до NN.

Ответы 1

  • #include<iostream>int main(){ int nn,kk; printf("Enter peoples and -kk: "); scanf("%d%d",&nn,&kk); int n[nn]; int k = kk; int sum, p, l = 0, i = 0, q = 0; for(int i = 0; i < nn; i++) { n[i] = 1; printf("%d ",n[i]); } printf(""); do{ sum = 0; p = l; q = 0; for(int i = 0; i < nn; i++) { if(n[i]) { sum++; } } for(;q!=kk;) { if(i==nn) i = 0; if(n[i]) { p++; q++; } if(q==kk) { n[i] = 0; l = i; } i++; } for(int i = 0; i < nn; i++) { printf("%d ",n[i]); } printf(""); }while(sum>2); for(int i = 0; i < nn; i++) { if(n[i]) { printf("Last: %d#",i+1); } } return 0;}
    • Автор:

      rosalind
    • 5 лет назад
    • 0
  • Добавить свой ответ

Войти через Google

или

Забыли пароль?

У меня нет аккаунта, я хочу Зарегистрироваться

How much to ban the user?
1 hour 1 day 100 years