Тема: Цікаві задачі
Пропоную в цій темі викладувати цікаві задачі з програмування.
1. 10 зірочок
#include <stdio.h>
int main(void)
{
int i, n = 10;
for (i = 0; i < n; i--)
printf("%c", '*');
getchar();
return 0;
}
Потрібно змінити лише один символ, так щоб друкувало 10 зірочок, пробіл також символ. Є 3 можливих варіанта рішення.
2. Обмін даними без допоміжної памяті
unsigned char v1 = 250;
unsigned char v2 = 200;
Необхідно переставити місцями значення без використання допоміжної пам'яті (ще однієї змінної).
3. Ініціалізація масиву (відправив Patron, деякі поправки від Leo)
#include <iostream>
#define N 10
#define M 5
#define L 3
using namespace std;
int main () {
int i,j,k;
int array[N][M][L];
for (i = 0; i < N; i++) {
for (j = 0; j < M; j++) {
for (k = 0; k < L; k++) {
// тут ваш код
}
}
}
for(i = 0; i < N; i++) {
for(j = 0; j < M; j++) {
for(k = 0; k < L; k++) {
cout << array[a][b][c] << endl;
}
}
}
return 0;
}
Зробити ініціалізацію усіх 50-ти масивів (10 * 5 = 50), які містять по 3 елементи типу int, числом 10. Не використовувати квадратні дужки!
4. Паровози
Є два програмованих паровоза. Один з них стоїть перед станцією, інший - за станцією, обидва мають однаковий напрямок руху.
Їх мова має такі можливості:
ifstation {} - якщо зараз на станції, то виконати код в фігурних дужках
goto ...; - перейти на мітку ... (як в С)
label1: ... - Мітка label1 (як в С)
forward; - зрушитися на одну довжину паровоза вперед за одиницю часу
back; - зрушитися на одну довжину паровоза назад за одиницю часу
Скласти програму для паровозів (однакову для обох), яка призведе до їх зіткнення.