Определить в каком подъезде и на каком этаже находится квартира с заданным номером 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. Если ввод данных осуществляется правильно и введенный номер квартиры соответствует одному из подъездов и этажей, то программа выведет номер подъезда и номер этажа, на котором находится квартира.