ENG  RUSTimus Online Judge
Online Judge
Задачи
Авторы
Соревнования
О системе
Часто задаваемые вопросы
Новости сайта
Форум
Ссылки
Архив задач
Отправить на проверку
Состояние проверки
Руководство
Регистрация
Исправить данные
Рейтинг авторов
Текущее соревнование
Расписание
Прошедшие соревнования
Правила
вернуться в форум

Обсуждение задачи 1068. Сумма

accepted pure c code
Послано Иван 8 май 2014 21:11
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int main(int argc, char *argv[])
{
    int n, tmp;
    long sum;
    scanf("%d", &n);
    if (n > 10000 || n < -10000) {
        printf("%d\n", 0);
        return 0;
    }

    if (n == 0) {
        printf("%d\n", 1);
        return 0;
    }
    if (n > 0) { /* positive */
        if (n % 2 == 0) { /* even */
            sum = n * (n / 2 - 1) + n + (n / 2);
        } else { /* not even */
            sum = n * (n / 2) + n;
        }
    } else { /* negative */
        if (n % 2 == 0) { /* even */
            sum = n * (n / 2 + 1) - n - (n / 2) - 1;
            tmp = ~sum + 1;
            sum = tmp;
        } else { /* not even */
            sum = n * (n / 2) - n - 1;
            tmp = ~sum + 1;
            sum = tmp;
        }
    }

    printf("%ld\n", sum);
    return 0;
}

/* n * (n / 2) + n not even */
/* n * ((n / 2) - 1) + n + (n / 2) even */
/* n * (n / 2) - n - 1 negative not even */
/* n * ((n / 2) + 1) - n - (n / 2) - 1 negative even */
Re: accepted pure c code
Послано Nafiul Islam 4 окт 2016 22:29
#include<stdio.h>
int main(){
    int n,N,ans;
    scanf("%d",&N);
    if(N > 1){
        n=N;
    }else{
        n=-1*N+2;
    }
    ans=(n*(N+1))/2;
    printf("%d\n",ans);
    return 0;

}

Also accepted