Определить в каком подъезде и на каком этаже находится квартира с заданным номером K - C (СИ)
Формулировка задачи:
Номер квартиры
Многоквартирный дом имеет N квартир, P подъездов и Q этажей, причем на каждом этаже каждого подъезда имеется одинаковое количество квартир. Определить в каком подъезде и на каком этаже находится квартира с заданным номером K.
Технические условия
Входные данные
В единственной строке файла записаны значения N, P, Q, K. 1 ≤ K ≤ N ≤ 1000, P*Q ≤ N.
Выходные данные
В единственную строку файла нужно вывести номер подъезда и этаж, на котором находится квартира с номером K.
#include <stdio.h> int main() { int n,p,q,k,g,i,kk,kp,e; scanf("%d %d %d %d", &n, &p, &q, &k); kk=(n/p)/q; kp=n/p; g=k; i=1; while(g>kp) { g=g-kp; i++; } printf("%d ", i); e=k%kp; i=1; while(e>kk) { e=e-kk; i++; } printf("%d\n", i); return 0; }
Решение задачи: «Определить в каком подъезде и на каком этаже находится квартира с заданным номером K»
textual
Листинг программы
#include <stdio.h> int main(void) { unsigned apptsPerHouse, // квартир в доме porchsPerHouse, // подъездов в доме floorsPerPorch, // этажей в подъезде apptsPerPorch, // квартир в подъезде apptsPerFloor, // квартир на этаже apptNumber, // номер квартиры porchNumber, // номер подъезда floorNumber; // этаж if ( scanf("%u %u %u %u", &apptsPerHouse, &porchsPerHouse, &floorsPerPorch, &apptNumber) == 4 ) { apptsPerPorch = apptsPerHouse / porchsPerHouse; apptsPerFloor = apptsPerPorch / floorsPerPorch; porchNumber = ( apptNumber / apptsPerPorch ) + ( ( apptNumber % apptsPerPorch ) ? 1 : 0 ); floorNumber = ( apptNumber - ( apptsPerPorch * ( porchNumber - 1 ) ) ) / apptsPerFloor + ( ( apptNumber % apptsPerFloor ) ? 1 : 0 ); printf("%u %u\n", porchNumber, floorNumber); } return 0; }
Объяснение кода листинга программы
В этом коде определены следующие переменные:
- apptsPerHouse (количество квартир в доме)
- porchsPerHouse (количество подъездов в доме)
- floorsPerPorch (количество этажей в подъезде)
- apptsPerPorch (количество квартир в подъезде)
- apptsPerFloor (количество квартир на этаже)
- apptNumber (номер квартиры)
- porchNumber (номер подъезда)
- floorNumber (номер этажа) С помощью функции scanf считываются значения переменных apptsPerHouse, porchsPerHouse, floorsPerPorch и apptNumber. Затем вычисляются значения переменных apptsPerPorch и apptsPerFloor. Далее вычисляются значения переменных porchNumber и floorNumber. И наконец, с помощью функции printf выводятся значения переменных porchNumber и floorNumber. Если ввод данных осуществляется правильно и введенный номер квартиры соответствует одному из подъездов и этажей, то программа выведет номер подъезда и номер этажа, на котором находится квартира.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д