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

Выведите остаток от деления A^B (A в степени B) на C - C++

Восстановить пароль Регистрация
 
nata95
 Аватар для nata95
1 / 1 / 0
Регистрация: 05.01.2014
Сообщений: 102
08.06.2014, 18:46     Выведите остаток от деления A^B (A в степени B) на C #1
Помогите, пожалуйста, исправить программу

Вам даны целые числа A, B и C. Выведите остаток от деления A^B (A в степени B) на C.

Технические условия
Входные данные
Единственная строка входного файла содержит три целых числа: A, B, C (1 <= A, B, C <= 1018). Числа разделены пробелами.

Выходные данные
Выходной файл должен содержать одно целое неотрицательное число, меньшее C - ответ к задаче.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>
 
using namespace std;
int main()
{
    int a, b, c,a1;
    cin>>a>>b>>c;
    a1=a;
    for (int i=0;i<b-1;i++)
    {
        a=a*a1;
    }
    cout<<a%c<<endl;
    return 0;
}
Пример входных данных
3 4 5
Пример выходных данных
1
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.06.2014, 18:46     Выведите остаток от деления A^B (A в степени B) на C
Посмотрите здесь:

остаток от деления C++
остаток от деления C++
Остаток от деления C++
C++ Остаток от деления
C++ Остаток от деления (%)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ogniel
 Аватар для Ogniel
24 / 24 / 1
Регистрация: 30.05.2011
Сообщений: 127
09.06.2014, 10:15     Выведите остаток от деления A^B (A в степени B) на C #2
аяяй

C++
1
2
3
4
5
6
a1=a;
    for (int i=0;i<b-1;i++)
    {
        a=a*a1;
    }
    cout<<a%c<<endl;
все довольно просто

C++
1
а=pow(a, b)%c;
nata95
 Аватар для nata95
1 / 1 / 0
Регистрация: 05.01.2014
Сообщений: 102
09.06.2014, 10:33  [ТС]     Выведите остаток от деления A^B (A в степени B) на C #3
не всё так просто, в условие сказано "ввод и вывод файлом"
Nekto
342 / 287 / 10
Регистрация: 23.03.2012
Сообщений: 838
09.06.2014, 10:40     Выведите остаток от деления A^B (A в степени B) на C #4
Цитата Сообщение от Ogniel Посмотреть сообщение
аяяй

C++
1
2
3
4
5
6
a1=a;
    for (int i=0;i<b-1;i++)
    {
        a=a*a1;
    }
    cout<<a%c<<endl;
все довольно просто

C++
1
а=pow(a, b)%c;
1018^1018 посчитает? =)
Ogniel
 Аватар для Ogniel
24 / 24 / 1
Регистрация: 30.05.2011
Сообщений: 127
10.06.2014, 13:44     Выведите остаток от деления A^B (A в степени B) на C #5
даже если посчитает, то в int точно не влезет)))
Nekto
342 / 287 / 10
Регистрация: 23.03.2012
Сообщений: 838
10.06.2014, 21:42     Выведите остаток от деления A^B (A в степени B) на C #6
Цитата Сообщение от Ogniel Посмотреть сообщение
даже если посчитает, то в int точно не влезет)))
Ну поэтому все не настолько просто
Renji
1535 / 983 / 240
Регистрация: 05.06.2014
Сообщений: 2,964
10.06.2014, 22:58     Выведите остаток от деления A^B (A в степени B) на C #7
1) a=a*a1; заменить на a=(a*a1)%c;
2) Читать Кнута.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.06.2014, 06:17     Выведите остаток от деления A^B (A в степени B) на C
Еще ссылки по теме:

C++ даны целые числа A, B и C. Выведите остаток от деления AB (A в степени B) на C
Для двух целых чисел найти остаток и частное от целочисленного деления, частное от вещественного деления C++
Остаток от деления C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Mr.X
Эксперт С++
 Аватар для Mr.X
2807 / 1583 / 248
Регистрация: 03.05.2010
Сообщений: 3,696
11.06.2014, 06:17     Выведите остаток от деления A^B (A в степени B) на C #8
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
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
/////////////////////////////////////////////////////////////////////////////////////////
//Вам даны целые числа A, B и C. Выведите остаток от деления A^B (A в степени B) на C.
//
//Технические условия
//Входные данные
//Единственная строка входного файла содержит три целых числа: A, B, C (1 <= A, B, C <= 1018). 
//Числа разделены пробелами.
//
//Выходные данные
//Выходной файл должен содержать одно целое неотрицательное число, меньшее C - ответ к задаче.
//
//Пример входных данных
//3 4 5
//Пример выходных данных
//1
/////////////////////////////////////////////////////////////////////////////////////////
#include <iostream>
#include <string>
/////////////////////////////////////////////////////////////////////////////////////////
typedef std::string     T_str;
/////////////////////////////////////////////////////////////////////////////////////////
int  A_pow_B_mod_C
    (
        int     A,
        int     B,
        int     C
    )
{
    A   %=  C;
 
    if( B % 2 == 0 )
    {
        A   *=  A;
        A   %=  C;
 
        B   /=  2;
 
        return  B == 0
                    ?   1
                    :   A_pow_B_mod_C( A, B, C ) % C;
    }
    else
    {
        return  A_pow_B_mod_C( A, B - 1, C ) % C * A % C;
    }
}
/////////////////////////////////////////////////////////////////////////////////////////
void  print_prompt_and_input_val_in_interval
        (
            T_str   const   &   prompt,
            int             &   val,
            int                 left_bound,
            int                 right_bound
        )
{
    do
    {
        std::cout   <<  prompt;
        std::cin    >>  val;
    }
    while   (
                    val     <   left_bound
                ||  val     >   right_bound
            );
}
/////////////////////////////////////////////////////////////////////////////////////////
int  main()
{
    int     const   MIN_VAL     =   1;
    int     const   MAX_VAL     =   1018;
 
    for(;;)
    {
        int     A   =   0;
        print_prompt_and_input_val_in_interval
            (
                "A = ",
                A,
                MIN_VAL,
                MAX_VAL
            );
 
        int     B   =   0;
        print_prompt_and_input_val_in_interval
            (
                "B = ",
                B,
                MIN_VAL,
                MAX_VAL
            );
 
        int     C   =   0;
        print_prompt_and_input_val_in_interval
            (
                "C = ",
                C,
                MIN_VAL,
                MAX_VAL
            );
 
        std::cout   <<  std::endl
                    <<  "A ^ B % C = "
                    <<  A_pow_B_mod_C( A, B, C )
                    <<  std::endl
                    <<  std::endl
                    <<  std::endl
                    <<  std::endl;
    }//for
}
Yandex
Объявления
11.06.2014, 06:17     Выведите остаток от деления A^B (A в степени B) на C
Ответ Создать тему
Опции темы

Текущее время: 12:16. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru