Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Помогите пожалуйста с 3-мя задачами по программированию(язык Си)

72K
02 июля 2011 года
defeaser
1 / / 02.07.2011
Задача №1:
Лимит времени 2000/4000/4000/4000 мс. Лимит памяти 65000/65000/65000/65000 Кб.

В первой строке записано арифметическое выражение в виде: ЧислоОперацияЧисло. Число это натуральное число, не превышающее 10000. Операция - один из знаков +, -, *. В начале строки, в конце строки, а также между числами и знаком операции пробелов нет. Гарантируется, что длина строки не превышает 200 символов.

Необходимо вывести результат вычисления выражения.
Ввод Вывод
154+3 157
Задача №2:
Даны два числа. Найти их наибольший общий делитель.

Ввод
Вводятся два натуральных числа, не превышающих 109.
Вывод
Выведите НОД введённых чисел.
Ввод
9 12
Вывод
3
Задача №3:
Легендарный учитель математики Юрий Петрович придумал забавную игру с числами. А именно, взяв произвольное целое число, он переводит его в двоичную систему счисления, получая некоторую последовательность из нулей и единиц, начинающуюся с единицы. (Например, десятичное число 1910 = 1*24+0*23+0*22+1*21+1*20 в двоичной системе запишется как 100112.) Затем учитель начинает сдвигать цифры полученного двоичного числа по циклу (так, что последняя цифра становится первой, а все остальные сдвигаются на одну позицию вправо), выписывая образующиеся при этом последовательности из нулей и единиц в столбик - он подметил, что независимо от выбора исходного числа получающиеся последовательности начинают с некоторого момента повторяться. И, наконец, Юрий Петрович отыскивает максимальное из выписанных чисел и переводит его обратно в десятичную систему счисления, считая это число результатом проделанных манипуляций. Так, для числа 19 список последовательностей будет таким:
10011
11001
11100
01110
00111
10011
...
и результатом игры, следовательно, окажется число 1*24+1*23+1*22+0*21+0*20 = 28. Поскольку придуманная игра с числами все больше занимает воображение учителя, отвлекая тем самым его от работы с ну очень одаренными школьниками, Вас просят написать программу, которая бы помогла Юрию Петровичу получать результат игры без утомительных ручных вычислений.

Ввод
Ввод содержит одно целое число N (0 ≤ N ≤ 32767).
Вывод
Ваша программа должна вывести одно целое число, равное результату игры.
Ввод Вывод
19 28
278
02 июля 2011 года
Alexander92
1.1K / / 04.08.2008
1.
Код:
#include <stdio.h>
#include <string.h>

int main(void) {
    int a = 0, b = 0, c = 0;
    int len = 0, i = 0;
    char operation = '\0';
    char input[201] = {0};

    printf("%s\n", "Enter the expression:");
    scanf("%s", input);

    len = strlen(input);

    for (i = 0; (input >= '0') && (input <= '9'); i++)
        a = a * 10 + (input - '0');
    operation = input;
    for (++i; i < len; i++)
        b = b * 10 + (input - '0');
    switch(operation) {
        case '+':
            c = a + b;
            break;
        case '-':
            c = a - b;
            break;
        case '*':
            c = a * b;
            break;
    }
    printf("%d\n", c);
    return 0;
}


3.
Код:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main(void) {
    int a = 0, res = 0;
    char str[17] = {'\0'}, max_str[17] = {'\0'}, temp = '\0';
    int len = 0;
    int i = 0, j = 0;

    scanf("%d", &a);
    itoa(a, str, 2);

    for (len = strlen(str), i = 0; i < len; i++) {
        if (strcmp(str, max_str) > 0)
            strcpy(max_str, str);
        temp = str[0];
        for (j = 1; j < len; j++)
            str[j-1] = str[j];
        str[len-1] = temp;
    }

    for (j = 0; j < len; j++)
        res = res * 2 + (max_str[j] - '0');
    printf("%d\n", res);
    return 0;
}




По задаче №2 - возьмите любой сборник олимпиадных задач по программированию, там одной из первых всегда идет эта задача.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог