Игорь Пашев - Post a comment

Feb. 22nd, 2011

[info]igorpashev

10:02 am - Ещё раз счастливые билеты

http://algolist.manual.ru/olimp/rec_prb.php
Задачи 2 и 3.

Компилировать командой

gcc -Wall -Wextra -ansi -pedantic -lm happy.c -o happy

#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <math.h>

char n[] = "00";

void next (char *n)
{
    ++(*n);
    while (*n > '9') {
        *n = '0';
        ++n;
        if (*n != '\0')
            ++(*n);
        else
            break;
    }
}


int happy (char n[], size_t l)
{
    size_t i;
    int s = 0;
    for (i = 0; i < l/2; ++i)
        s += n[i];
    for (i = l/2; i < l; ++i)
        s -= n[i];
    return s;
}

int main ()
{
    int i;
    size_t l;
    size_t count = 0;;
    l = strlen(n);
    for (i = 0; i < pow(10, l); ++i) {
        printf("%s -> ", n);
        if (0 == happy(n, l)) {
            printf("happy :-)\n");
            ++count;
        }
        else
            printf("usual :-(\n");
        next(n);
    }

    printf ("Total happy: %lu\n", (unsigned long)count);
    return EXIT_SUCCESS;
}

Read Comments

Reply:

From:
(will be screened)
Identity URL: 
имя пользователя:    
Вы должны предварительно войти в LiveJournal.com
 
E-mail для ответов: 
Вы сможете оставлять комментарии, даже если не введете e-mail.
Но вы не сможете получать уведомления об ответах на ваши комментарии!
Внимание: на указанный адрес будет выслано подтверждение.
Username:
Password:
Subject:
No HTML allowed in subject
Message: