четверг, 14 декабря 2017 г.

c# Робота з рядками






З масиву видалити найдовшу ланцюжок парних елементів
int[] arr = { 4,6, 3, 12, 6, 8, 4, 7,8, 2, 0, 5, 0 };
foreach (int e in arr)
    Console.Write("{0} ", e);
Console.WriteLine();
int spos = 0, temp = 0, len = 0;
for (int i = 0; i < arr.Length; ++i)
{
    if ((arr[i] % 2) == 0)
        temp++;
    else
    {
        if (temp > len)
        {
            len= temp;
            spos = i - temp;
        }
        temp = 0;
    }
}
 
int[] arr2 = new int[arr.Length - len];
for (int i = 0, j = 0; i < arr.Length; ++i)
    if (i < spos || i >= (spos + len))
    {
        arr2[j] = arr[i];
        ++j;
    }
foreach (int e in arr2)
    Console.Write("{0} ", e);

Дано рядок. Підрахувати найдовшу послідовність поспіль букв а.



четверг, 7 декабря 2017 г.

c# Олімпіадні задачі

За мною просили не займати
На одну стрічку, яку вставляють у касовий апарат, поміщається L рядків тексту. Опис кожного придбаного товару займає на чеці m рядків, ніякої додаткової інформації на чеці не друкуються. Касир замінює стрічку або у кінці дня, або коли бачить, що покупки наступного покупця не помістяться на стрічці. Ваша задача визначити, після якакого покупця касиру прийдеться вперше за день поміняти стрічку в апараті.
Вхідні дані
У першому рядку задано два числа: довжина стрічки L (1 < L < 1000) та кількість рядків, які займає один товар m (1 ≤ m ≤ 1000).
У другому рядку задано число n (1 ≤ n ≤ 1000) – кількість покупців, які прийшли протягом дня.
У третьому – через пропуск вказано кількість товарів, які прдбав кожен з покупців. Гарантується, що покупки кожного покупця можуть поміститись на одній стрічці.
Вихідні дані

Одне число – номер покупця, після якого прийдеться поміняти стрічку (покупці нумеруються з 1).

Застосуй перестановку


На олімпійських змаганнях з плавання тільки що завершився черговий заплив і Петро записав у якому порядку фінішували спортсмени на доріжках. Запис "2 0 1" означає, що золото виграв спортсмен, який плив по другій доріжці, срібло – який плив по нульовій (увага, доріжки пронумеровано з нуля) та бронзу – по першій. Також у Петра є стартовий протокол, у якому вказано, хто на яких доріжках стартував. Протокол "Phelps Thorpe Popov" відповідає наступному початковому розміщенню: Phelps стартує на нульовій доріжці, Thorpe – на першій, Popov – на другій.
Тепер Петро хоче скласти пілсумкову таблицю результатів – прізвища спортсменів у тому порядку, у якому вони фінішували. Допоможіть йому.
Вхідні дані
У першому рядку вхідних даних задано n (n < 100) чисел a0, …, an-1 – порядок, у якому фінішували спортсмени на доріжках. Гарантується, що кожне число від 0 до n-1 зустрічається рівно одни раз.
У другому рядкеу задано стартовий протокол. Це n прізвищ (кожне з них – комбінація латинських букв та0 цифр без пропусків), відокремлених пропуском.
Вихідні дані
Виведіть підсумкову таблицю результатів – прізвища спортсменів у тому порядку, у якому вони доплили до фініша. Прізвища виводьте у одному рядку і відокремлюйте одним пропуском.
Вхідні дані
Sample 1
2 0 1
Phelps Thorpe Popov

Sample 2
0 4 2 5 3 1
Yu Cseh Zige Yi Lochte Cseh

Обід для пітона

Один пітон звик кожен день їсти кроликів. Для цього він приготував A кроликів. При цьому крихкий організм пітона вимагає споживання B кроликів щоденно. І ось пітон задумався, на скільки днів йому вистачить цього запасу. Також пітону хочеться знати, скільки кроликів йому дістанеться на самий останній обід.
Вхідні дані
На вхід подаються через пропуск два числа: A та B (1 ≤ AB ≤ 101000).
Вихідні дані
Виведіть два числа – результат цілочисельного ділення A на B та залишок від цього ділення.
Вхідні дані
Sample 1
5 2

Sample 2
9 3
Вихідні дані
Sample 1
2 1

Sample 2
3 0
static void Main(string[] args)
        {
            string r = Console.ReadLine();
            var massiv = r.Split(' ');
            BigInteger a = BigInteger.Parse(massiv[0]);
            BigInteger b = BigInteger.Parse(massiv[1]);
            Console.WriteLine("{0} {1}", BigInteger.Divide(a, b), BigInteger.ModPow(a, 1, b));
        }

Перевірка на простоту

Вам доручається важлива місія перевірки чисел на простоту. Не підведіть галактику!
Вхідні дані
На вхід подається одне число N (2 ≤ N109).
Вихідні дані
Виведіть True, якщо число воістину просте, і False, якщо число складене.

Вхідні дані
Sample 1
2

Sample 2
10
Вихідні дані
Sample 1
True

Sample 2
False

Імперський марш


На цей раз Імператор нагрянув з ревізією не у якийсь там ангар, а у казарми 501-легіону імперських штурмовиків. У зв'язку з цим кожного штурмовика постригли "під їжачка". Не дивлячись на розвиток нанотехнологій, постригли погано – в результаті із-за різниці довжини волосся штурмовики можуть відрізнятись один від однога за зростом, але небагато – різниця не перевищує 137 нанометрів. Ваша задача – вишукувати штурмовиків за зростом.
Вхідні дані
Пеший рядок вхідного файлу містить ціле число N – кількість штурмовиків (1 ≤ N ≤ 100000), другий рядок – N натуральних чисел, які не перевищують 2∙109 кожне – зріст штурмовика у нанометрах. Ніякі два штурмовики не відрізняються за зростом більше, ніж на 137 нм.
Вихідні дані
Виведіть зріст штурмовиків у порядку неспадання.
Вхідні дані
Sample 1
5
12 1 2 1 13

Sample 2
1
1000000000
Вихідні дані
Sample 1
1 1 2 12 13

Sample 2
1000000000

Реверс

Переверніть масив чисел.

Вхідні дані

Перший рядок містить кількість чисел n (1 ≤ n ≤ 900). Кожний з наступних n рядків містить по одному числу. Усі числа цілі, за модулем не перевищують 105.

Вихідні дані

Виведіть n чисел – перевернутий масив.
Вхідні дані #1
4
92846
96841
33582
25998
Вихідні дані #1
25998 33582 96841 92846

        }

Програма для робота

Студент Вася захоплюється робототехнікою і нещодавно зконструював чергового робота з поетичним іменем "Нюся - Розумниця - 2011", яка іноді, коли буває у гарному настрої, відкликається на коротке ім'я Нюся. Васька створює різні інтелектуальні програми, які виконує Нюся. Нещодавно Васька вирішив навчити Нюсю гадати на ромашці. Гадання дуже просте:
1.           У ромашки є N пелюсток
2.           Нюся відриває одну пелюстку - це "любить"
3.           Нюся відриває ще одну пелюстку - це "не любить"
4.           Нюся відриває ще одну пелюстку - це "любить"
5.           І так далі, поки є пелюстки у ромашки. Остання пелюстка дає відповідь.
Напишіть для Нюсі таку програму, а то Ваські ще заліки здавати і писати цю програму зовсім ніколи.
Вхідні дані
Вхідні дані містять одне ціле число N - кількість пелюсток у ромашки (N ≤ 109).
Вихідні дані
Вивести єдиний рядок "Love" або "Not love".
Вхідні дані
Sample 1
5

Sample 2
6
Вихідні дані
Sample 1
Love

Sample 2
Not love

.       Знайти середнє арифметичне однозначних парних чисел.

4.       Знайти суму двозначних непарних чисел
5.       Вивести на екран всі натуральні  числа із проміжку від 15 до 27 спочатку в рядок, а потім у стовпець
Console.Write("Натуральні числа із проміжку [15;23]: ");
for (int x = 15; x <= 23; x=x+1)
Console.Write ("{0} ",x);
Console.WriteLine();
Console.WriteLine("Натуральні числа із проміжку [15;23]: ");
for (int x = 15; x <= 23; x = x + 1)
Console.WriteLine(x);
6.       Вивести однозначні числа в рядок, в стовпчик
7.       Вивести у рядок 10 перших двозначних чисел, що кратні 4
8.       Надрукувати в стовпчик всі цілі числа від 15 до 45.
9.       Надрукувати в стовпчик всі числа від 35 до 5.
10.    Надрукувати таблицю множення на 7.
11.    Вивести в рядок всі тризначні числа, що кратні 127.
Console.WriteLine("всi тризначнi числа, що кратнi 127");
for (int i = 100; i <= 999; i++)
 if (i % 127 == 0) Console.WriteLine(i+’ ‘);
12.    Знайдемо суму всіх двозначних чисел, що кратні 5
int i;
            int s=0;
            for (i = 10; i <= 99; i=i+5) ;
            s = s + i;
   Console.WriteLine("Cума всіх двозначних чисел, що кратні 5 - "+s);
або
int i;
            int s=0;
            for (i = 10; i <= 99; i++ ) ;
            if (i%5==0) s = s + i;
            Console.WriteLine("Cума всіх двозначних чиселщо кратні  5 - "+s);
13.    Вивести на екран всі двозначні числа, що кратні 15
14.    Знайти суму квадратів однозначних чисел.
15.    Знайти всі двозначні числа, сума цифр яких дорівнює 3.
16.    Визначення середнього арифметичного чисел з проміжку [5;27] з кроком зміни числа   3.
17.    Підрахувати кількість тризначних чисел, що належать проміжку від 345 до 500 і таких, що діляться на 9 без остачі.
int k=0;
      Console.Write("У проміжку [345; 500] чисел, що діляться на 9 без остачі - ");
            for (int x = 345; x <= 500; x=x+1)
            if (x %9==0) k= k +1;
    Console.WriteLine (k);
18.    Серед чисел з проміжку [15, 78] вибрати ті, що діляться на 13
19.    Серед тризначних чисел знайти ті, сума цифр яких дорівнює 22
20.    Знайти середнє арифметичне цілих чисел з проміжку [5;25].
21.    Надрукувати всі двозначні числа, які кратні 5.
22.    Обчислити суму чисел, що вводяться з клавіатури, ознакою  завершення вводу число 9999
23.    Знайти суму ряду 2+6+10+14+18+22+26+30+34.
24.    Знайти суму 3+7+11 + 15+19+23+27+31.
25.    Знайти суму 2+7+12+17+22+27+32+37.
26.    Знайти факторіал числа п.
27.    Обчислення значення функції y=sinx-5 в проміжку [-2;2]
28.    Надрукувати всі двозначні числа, які кратні 5 і не містять цифр і 2.
29.    Знайти середнє арифметичне непарних тризначних чисел
30.    Вивести всі натуральні числа з проміжку [1000; 2000], які рівні сумі кубів своїх цифр .
31.    Вивести на екран всі тризначні числа, що кратні 9
32.    Вивести на печать всі чотиризначні числа, що менші натурального числа і сума квадратів цифр яких кратна 7.
33.    Знайти суму ряду 2! +4! +6!
34.    Вивести всі чотиризначні числа, в яких сума перших двох цифр рівна сумі двох останніх цифр і немає однакових цифр.
35.    Для введеного натурального числа N вивести 50 цілих  чисел, що йому передують.
36.    Серед тризначних чисел вивести всі паліндроми (121, 252, …).
37.    Які цифри потрібно приписати до числа 1022 ( по одній з кожної сторони), щоб одержане число було кратне 7, 8 і 9.
38.    Для введеного цілого числа вивести 50 чисел, що за ним слідують.
39.    В розшуку знаходиться автомобіль з чотиризначним номером. Відомо, що сума цифр рівна 12 і сума крайніх чисел дорівнює сумі середніх чисел. Знайти варіанти номерів.
40.    Знайти перші 25 випадкових цілих числа, що не перевищують 30, і такі, що діляться на 9 без остачі.
41.    Обчислення найбільшого спільного дільника з двох чисел. Алгоритм Евкліда.
Console.WriteLine("Введіть значення a та b натискаючи після кожного Enter");
int a = Convert.ToInt32(Console.ReadLine());
 int b = Convert.ToInt32(Console.ReadLine());
 for (int i = 1; a != b; i++)
 {
            if (a > b) a -= b;
             else
             if (a < b) b -= a;
 }
 Console.WriteLine("НСД={0}", a);
 Console.ReadKey(true);
42.    Обчислимо цілі значення функції y=x2 для х від -3 до 3.      
int y;
            Console.WriteLine("значення функцii");
            for (int x = -3; x <= 3; x=x+1)
            {
                y = x * x;
                Console.WriteLine("x={0}, y={1}", x, y);
    }
43.    Скориставшись даним зразком фрагменту коду програми,  наведіть такий же приклад для відомих рядків вірша «Ой, снігу, снігу білого насипала зима. Прийшов сховатись заєнька – ялиноньки нема»
Console.WriteLine("У попа був собака");
            goto Label1;
            Label2:
            Console.WriteLine("Вона зїла кусень сала");
            goto Label3;
            Label1:
            Console.WriteLine("Він її любив");
            goto Label2;
            Label3:
            Console.WriteLine("Піп її побив");
44.    Надрукувати в стовпчик значення: sin 0, sin 1, sin 2, …, sin 90 з точністю до десятитисячнихКутвимірювати в градусах.
45.    Надрукувати в стовпчик значення квадратних коренів чисел: 0,1 , 0,2 , …, 1 .
46.    Не використовуючи функцію піднесення до степеня знайти значення x в степені  y , де x-дійсне, а y-натуральне.
47.    Вирахувати суму: 1+1/2+1/3+1/4+…+1/n.
48.    Надрукувати в стовпчик наступні числа: 1,1 1,2 1,3 … 1,8
49.    Скласти таблицю значень функції для всіх значень х від -4 до 4 з кроком 1.
50.    Вивести на екран 20 значень функції, якщо максимальне значення х=5 і значення міняється з кроком 2.
51.    Вивести на екран 20 значень функції, якщо мінімальне значення х= -3 і значення міняється з кроком 2.
53.    Визначити щасливий квиток, нумерація квитків від 000000 до 999999. «Щасливим» квитком є квиток, сума трьох перших цифр якого дорівнює сумі інших трьох.
54.    Визначити скільки є «Щасливих» номерів автомобілів в одній серії з номерами від 0000 до 9999
55.    Перший член і знаменник спадної геометричної прогресії дорівнюють відповідно b  і  q. Вивести десять перших членів прогресії.