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

Деление больших чисел - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Кординаты мыши и нажатие клавишы http://www.cyberforum.ru/cpp-beginners/thread572570.html
у меня 2 вопроса: 1)Как определить координату мышки только по Y и записать её в переменную 2)Как отловить нажатую клавишу, если у меня программа в консоле и я её сворачиваю, и нажимаю mouse3 на рабочем столе. Добавлено через 7 минут UP UP UP Добавлено через 45 минут
C++ Ошибка Здравствуйте, вот сделал задание, а мне VS2010 выдаёт такую ошибку: First-chance exception at 0x75d1e37d in Tree.exe: 0x40010005: Control-C. Что это?:( http://www.cyberforum.ru/cpp-beginners/thread572569.html
C++ Разобрать пример указателя на символьный массив
void main() { const N=256; char S="zzzzz"; char *s={""}; s=&S; *s="xxxxxxxx"; cout<<*s<<endl;
C++ Комментарии к программе
Есть программа которая считывает текст из файла и выводит только предложения,содержащие введенное с клавиатуры слово!!Помогите разобраться с кодом идущим со строчки std::ifstream in("file.txt"); include <iostream> #include <fstream> #include <string> #include <ctype.h> #include <conio.h> #include <windows> using namespace std;
C++ OpenGL, проблема с функциями. http://www.cyberforum.ru/cpp-beginners/thread572552.html
Проблема состоит в том, что если я пытаюсь перенести параметры создания окна в OpenGL в функцию то окно не создается, а если в майн то все нормально работает. #include <GL/glut.h> using namespace std; void display(void) { glClear(GL_COLOR_BUFFER_BIT);
C++ Алгоритм цепочка (исправить код) Условие Задан набор неповторяющихся пар (Ai,Aj), где Ai, Aj принадлежат множеству А={A1,A2,…,An}. Необходимо составить цепочку максимальной длины по следующему правилу: (Ai,Aj)+(Aj,Ak)=(Ai,Ak). При образовании этой цепочки любая пара может быть использована не более одного раза. Входные данные Входные данные находятся в файле input.in. Первая строка этого файла содержит два числа:... подробнее

Показать сообщение отдельно
Mr.X
Эксперт С++
 Аватар для Mr.X
2798 / 1574 / 246
Регистрация: 03.05.2010
Сообщений: 3,655
13.05.2012, 16:13     Деление больших чисел
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
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
/////////////////////////////////////////////////////////////////////////////////////////
#include <iostream>
#include <string>
#include <sstream>
/////////////////////////////////////////////////////////////////////////////////////////
typedef std::string     T_str;
/////////////////////////////////////////////////////////////////////////////////////////
const char  DIG_MIN         =   '1';
const char  DIG_MAX         =   '9';
const int   NUM_LEN_MIN     =   1;
const int   NUM_LEN_MAX     =   5000000;
/////////////////////////////////////////////////////////////////////////////////////////
template<class T>
T  input_val
        (
            T_str   prompt,            
            T       val_min,
            T       val_max            
        )
{    
    std::ostringstream  sout;
    sout    <<  prompt
            <<  " от "
            <<  val_min
            <<  " до "
            <<  val_max
            <<  ":"
            <<  '\t';    
    
    bool    value_has_correct_type  =   false;
    T       val_res                 =   T();
    do
    {
        std::cout   <<  sout.str();
        T_str   val_str;
        std::cin    >>  val_str;
        std::istringstream  ssin(val_str);
        char    c   =   0;
        value_has_correct_type  =       ( ssin  >>  val_res )   !=  0
                                    &&  ( ssin  >>  c       )   ==  0;
    }while
        (
                !value_has_correct_type
            ||  val_res     <   val_min
            ||  val_res     >   val_max
        );
 
    std::cout   <<  std::endl;
    return  val_res;  
}
/////////////////////////////////////////////////////////////////////////////////////////
char  input_digit()
{
    return  input_val<char>
            (
                "Введите цифру",            
                DIG_MIN,
                DIG_MAX                
            );    
}
/////////////////////////////////////////////////////////////////////////////////////////
int  input_dividend_len()
{
    return  input_val<int>
                (
                    "Введите длину делимого",            
                    NUM_LEN_MIN,
                    NUM_LEN_MAX           
                );
}
/////////////////////////////////////////////////////////////////////////////////////////
int  input_divisor_len()
{
    return  input_val<int>
                (
                    "Введите длину делителя",            
                    NUM_LEN_MIN,
                    NUM_LEN_MAX            
                );
}
/////////////////////////////////////////////////////////////////////////////////////////
T_str  get_quotient
    (        
        int     dividend_len,
        int     divisor_len
    )
{
    T_str  res_str;
    for( int  i = 0; i < dividend_len - divisor_len + 1; ++i )
    {
        res_str.push_back(i % divisor_len == 0 ? '1' : '0');
    }
    if( res_str.empty() )
    {
        res_str = "0";
    }
    return  res_str;
}
/////////////////////////////////////////////////////////////////////////////////////////
T_str  get_remainder
    (
        int     dividend_len,
        int     divisor_len,
        char    digit    
    )
{
    T_str   res_str
                (
                    dividend_len % divisor_len,
                    digit                
                );
 
    if( res_str.empty() )
    {
        res_str = "0";
    }
    return  res_str;
}
/////////////////////////////////////////////////////////////////////////////////////////
void  print_quotient(T_str  quotient)
{
    std::cout   <<  quotient
                <<  std::endl;
}
/////////////////////////////////////////////////////////////////////////////////////////
void  print_remainder(T_str  remainder)
{
    std::cout   <<  remainder
                <<  std::endl;
}
/////////////////////////////////////////////////////////////////////////////////////////
int main()
{
    std::locale::global(std::locale("")); 
    char    digit           =   input_digit         ();
    int     dividend_len    =   input_dividend_len  ();
    int     divisor_len     =   input_divisor_len   ();    
        
    T_str   quotient    =   get_quotient
                                (                                    
                                    dividend_len,
                                    divisor_len                                    
                                );
 
    T_str   remainder   =   get_remainder
                                (                                    
                                    dividend_len,
                                    divisor_len,
                                    digit    
                                );
 
    print_quotient  ( quotient  );
    print_remainder ( remainder );
}
 
Текущее время: 20:28. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru