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

Сложение двух больших чисел - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ метод в for_each http://www.cyberforum.ru/cpp-beginners/thread360914.html
Привет всем. Есть класс и структурка: struct Foo { Foo(): name("nx"), val(9) {} string name; int val;
C++ Обявление шаблонного класса Как-то с пониманием С++ вроде уже все норм, осталась только одна тема немного темная - шаблоны, вроде бы и понимаю как они работают да и штука нужная, но все таки не которые детали синтаксиса и реализации кажутся немного "инопланетянскими", к примеру описание класса сигнала в бусте(boost/signal.hpp) template<typename Signature, // Function type R (T1, T2, ..., TN) typename... http://www.cyberforum.ru/cpp-beginners/thread360910.html
C++ НОК 3 натур числа
Помогите форумчане:) Тема:Функции Составить программу для нахождения наименьшего общего кратного трех натуральных чисел.
6-значные счастливые числа C++
Здравствуйте, прошу помощи! Тема: Функции. Получить все 6-значные счастливые числа, т.е. те, у которых сумма первых трех цифр равна сумме последних трех
C++ Определить, сколько цифр в целом положительном числе http://www.cyberforum.ru/cpp-beginners/thread360891.html
нужно сделать на С. -Задано целое додатне число N. Определить, сколько в нем цифр.
C++ Программа удаляющая все комментарии из листинга программы С++ Помогите пожалуйста написать программу,удаляющую все комментарии из листинга программы С++.Программа должна обрабатывать файл *.cpp указываемый пользователем в начале работы. обьяснения каждой строки желательно бы еще...Заплачу если надо.. подробнее

Показать сообщение отдельно
KeyGen
 Аватар для KeyGen
333 / 289 / 6
Регистрация: 07.08.2011
Сообщений: 789
Записей в блоге: 1
06.10.2011, 19:55     Сложение двух больших чисел
Переписал. Все исправил. Все чудно работает. Размер цифр зависит только от размера массивов.
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
#include <iostream>
using namespace std;
 
const int Size=41;
    
int charvint(char *, int *);
 
void Sum(char *,char *);
 
int main()
{
    setlocale(LC_ALL, "rus");
    
    cout << "Ââåäèòå ïåðâîå ÷èñëî: ";
    char massc[Size];
    cin.get(massc,Size);
    cin.get();
    
    cout << "Ââåäèòå âòîðîå ÷èñëî: ";
    char massc1[Size];
    cin.get(massc1,Size);
    cin.get();
    
    Sum(massc,massc1);
    
    
    cout << "\n\n\n";
    system("PAUSE");
    return 0;
}
//Ïåðåâîä ГЁГ§ Г¬Г*Г±Г±ГЁГўГ* char öèôðû Гў Г¬Г*Г±Г±ГЁГў int
int charvint(char * massc, int *massi){
     int l=0;
     for(int i=0; massc[i]!='\0'; i++,l++){
     massi[i]=int(massc[i]);
     massi[i]-=48;
     }
     return l;
}
 
//ÂûïîëГ*ГҐГ*ГЁГҐ ñëîæåГ*ГЁГї
void Sum(char *massc,char *massc1){
     
    int l1;
    int massi[Size];
    for (int i=0; i<Size; i++)
    massi[i]=22;
    
    l1=charvint(massc,massi);
    
    int l2;
    int massi1[Size];
    for (int i=0; i<Size; i++)
    massi1[i]=22;
    
    l2=charvint(massc1,massi1);
     
    int schet=0;
    int kk;
    if(l2<l1){
    kk=l1;
    
    for (int i=0; i<kk; i++)
    if (massi1[i]!=22)
    schet++;
    schet=kk-schet;
    
    for (int i=kk; i>=0; i--)
    massi1[i+schet]=massi1[i];
    for (int i=0; i<schet; i++)
    massi1[i]=0;  
    }
    else if(l2>l1){
    kk=l2;
    
    for (int i=0; i<kk; i++)
    if (massi[i]!=22)
    schet++;
    schet=kk-schet;
    
    for (int i=kk; i>=0; i--)
    massi[i+schet]=massi[i];
    for (int i=0; i<schet; i++)
    massi[i]=0;  
    }
    else
    kk=l2; 
 
 for (int i=kk; i>=0; i--){
    massi[i+1]=massi[i];
    massi1[i+1]=massi1[i];
}
    massi[0]=0;
    massi1[0]=0;
 
    
    int massiv[Size]={};
    
    
    for(int i=kk; i>0; i--){
    massiv[i]+=massi[i]+massi1[i];
    if (massiv[i]>9){
    massiv[i]-=10;
    massiv[i-1]+=1;}
    }
    
    cout << "               ГЋГІГўГҐГІ: ";
    if(massiv[0]==0)
    for(int i=1; i<=kk; i++)
    cout << massiv[i];
    else
    for(int i=0; i<=kk; i++)
    cout << massiv[i];
 
}
Миниатюры
Сложение двух больших чисел  
 
Текущее время: 06:48. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru