Двойная загрузка прямо в Ubuntu без показа экрана GRUB, и экран продолжает мерцать

Чтобы напечатать частичные суммы целых чисел, заданные на стандартном входе один на строку:

#!/usr/bin/env python3
import sys

partial_sum = 0
for n in map(int, sys.stdin):
    partial_sum += n
    print(partial_sum)

Пример запуска.

Если по какой-то причине команда слишком медленная; вы можете использовать программу C:

#include 
#include 
#include 

int main(void)
{
  uintmax_t cumsum = 0, n = 0;
  for (int c = EOF; (c = getchar()) != EOF; ) {
    if (isdigit(c))
      n = n * 10 + (c - '0');
    else if (n) { // complete number
      cumsum += n;
      printf("%ju\n", cumsum);
      n = 0;
    }
  }
  if (n)
    printf("%ju\n", cumsum + n);
  return feof(stdin) ? 0 : 1;
}

Чтобы создать и запустить, введите:

$ cc cumsum.c -o cumsum
$ ./cumsum < input > output

Пример запуска .

UINTMAX_MAX is 18446744073709551615.

Код C в несколько раз быстрее, чем команда awk на моей машине для входного файла, сгенерированного с помощью:

#!/usr/bin/env python3
import numpy.random
print(*numpy.random.random_integers(100, size=2000000), sep='\n')

1
задан 29 June 2018 в 17:24

0 ответов

Другие вопросы по тегам:

Похожие вопросы: