Форум программистов, компьютерный форум CyberForum.ru

деления по модулю, остатки - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Как определить размер строки LPTSTR? http://www.cyberforum.ru/cpp-beginners/thread440354.html
Как определить размер строки LPTSTR? strlen не подходит...
C++ Помогите переписать программу "система счисления" Помогите, пожалуйста, переписать программу, мне нужна программа без звездочки перед buff, только что бы она работала. Условие: Написать функцию, которая получает в качестве аргументов целое положительное число и систему счисления, в которую это число должно переводится (системы счисления от 2 до 36) #include <iostream.h> using namespace std; void f(int x, int system, char *buff) {... http://www.cyberforum.ru/cpp-beginners/thread440331.html
Sin быстрее чем из math.h C++
ребят, вообщем мне задали написать программу которая считала синус быстрее чем из math.h ) скорость должна достигаться путем потери точности) Я вот написал код который(как я думаю должен быстрее работать) но на деле не вижу что он быстрее) подтолкните кто нить) #include <iostream> #include <conio.h> #include <math.h> #include <windows.h> const int N=100000; void main(void) {int i; double...
C++ Начало программирования на C++
Решил заняться программированием на C++. Скачал учебник Харви Дейтел, Пол Дейтел "Как программировать на C++". Начало отличное. Всё обьясняет как, да что. У меня Borland C++ 6. Программа вроде нормально запустилась на Win7. Дошёл до первой практики. Как создать точно не знал. Стёр код который был уже написан и вписал свой. Компилятор ругался на TForm и ещё что то там. Понял что форма не...
C++ Вычисление произведения нечетных чисел от 1 до 10. http://www.cyberforum.ru/cpp-beginners/thread440290.html
Написать программу для вычисления произведения нечетных чисел от 1 до 10 и вывести на экран. Заранее благодарен тому, кто поможет решить или найдет такую же задачу с её решением.
C++ Опpеделить пpоизведение сpедних аpифметических значений элементов, pасположенных ниже и выше главной диагонали. Даны вещественные массивы D, S. Для каждого массива опpеделить пpоизведение сpедних аpифметических значений элементов, pасположенных ниже и выше главной диагонали. подробнее

Показать сообщение отдельно
AC-93
16 / 16 / 0
Регистрация: 27.01.2010
Сообщений: 150
03.02.2012, 21:35  [ТС]     деления по модулю, остатки
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
#pragma warning (disable:4996)
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
 
#define MODULE 1000000007
 
#define ord(a) (('a' <= a && 'z' >= a)? (a - 'a'):(a - 'A' + 32))
 
int main()
{
    int T, i;
    char arr[501];
    int str[501];
    unsigned long long  int sum, temp;
    scanf("%d", &T);
    for (i = 0; i < T; i++)
    {
        int l, j = 0, k,t;
 
        memset(arr, 0, 501 * sizeof(char)), 
        memset(str, 0, 501 * sizeof(int));
        sum = 1;
        scanf("%s", &arr);
        l = strlen(arr);
        for (j = 0; j < l; ++j)
            str[ord(arr[j])]++;
        k = 0;
        for (j = 0; j < 90; ++j)
        {
            int fact = str[i];
            t = 1;
            temp = 1;
            //
                //
            while (fact)
                t *= fact--;
            while (str[j]-- != 0)
            {
                k++;
                temp *= k;
                temp %= MODULE;
            }
            
            sum *=temp;
            sum %= MODULE;
        }
 
        printf("%d\n", (int)sum);
    }
    return 0;
}
Добавлено через 2 минуты
Придется подключать длинную арифметику, можно считать в дабле, но там нет операции деления по модулю.
В задаче предел верхний 500!/(490!(10!)) = 245810588801891098700, 26 степень

Добавлено через 2 минуты
была еще задача на всесибирской олимпиаде потанина этого года, там нужно было найти в треугольнике паскаля определенную строку, умножить на соотв числа из списка, а потом чередуя знак сложить, т.е. дано 3 числа к примеру a1,a2,a3 делаем 1*a1 - 2*a2 + a3 и тд, а коэффициенты разрастались страшно, а могло быть до тысячных рядов и ответ по модулю.
препод сказал что есть способ хранить остаток в 2 числах и тогда получать норм ответ (типа хранить макс степень модуля и остаток), но мы не поняли как.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru