#include<iostream> #include<cstring> using namespace std; inline int max(int a, int b) { if (a > b) return a; return b; } inline int min(int a, int b) { if (a < b) return a; return b; } int main() { char a[5001], b[5001]; int wynik[5002], i, mx, mn; int x; int przeniesienie, c1, c2; przeniesienie = 0; cout << "Podaj liczbe 'a': "; cin >> a; for(int y=0;a[0] == '0'; y++) if (a[0] == '0') { cout << "Podales zla liczbe z zerami wiodącymi, podaj inne 'a'" << endl; cin >> a; } cout << "Podaj liczbe 'b': "; cin >> b; for (int z = 0; b[0] == '0'; z++) { if (b[0] == '0') { cout << "Podales zla liczbe z zerami wiodącymi, podaj inne 'b'" << endl; cin >> b; } } c1 = strlen(a); c2 = strlen(b); mx = max(c1, c2); mn = min(c1, c2); for (i = mx - 1; i >= 0; i--) { if (c1 >= c2) { if (mn) { mn--; x = (int)a[i] + (int)b[mn] - 96 + przeniesienie; wynik[i] = x % 10; przeniesienie = x / 10; } else { x = (int)a[i] - 48 + przeniesienie; wynik[i] = x % 10; przeniesienie = x / 10; } } else { if (mn) { mn--; x = (int)a[i] + (int)a[mn] - 96 + przeniesienie; wynik[i] = x % 10; przeniesienie = x / 10; } else { x = (int)b[i] - 48 + przeniesienie; wynik[i] = x % 10; przeniesienie = x / 10; } } } cout << "Suma:"; if (przeniesienie) cout << 1; for (i = 0; i < mx; i++) cout << wynik[i]; cout << endl; return 0; }
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 | #include<iostream> #include<cstring> using namespace std; inline int max(int a, int b) { if (a > b) return a; return b; } inline int min(int a, int b) { if (a < b) return a; return b; } int main() { char a[5001], b[5001]; int wynik[5002], i, mx, mn; int x; int przeniesienie, c1, c2; przeniesienie = 0; cout << "Podaj liczbe 'a': "; cin >> a; for(int y=0;a[0] == '0'; y++) if (a[0] == '0') { cout << "Podales zla liczbe z zerami wiodącymi, podaj inne 'a'" << endl; cin >> a; } cout << "Podaj liczbe 'b': "; cin >> b; for (int z = 0; b[0] == '0'; z++) { if (b[0] == '0') { cout << "Podales zla liczbe z zerami wiodącymi, podaj inne 'b'" << endl; cin >> b; } } c1 = strlen(a); c2 = strlen(b); mx = max(c1, c2); mn = min(c1, c2); for (i = mx - 1; i >= 0; i--) { if (c1 >= c2) { if (mn) { mn--; x = (int)a[i] + (int)b[mn] - 96 + przeniesienie; wynik[i] = x % 10; przeniesienie = x / 10; } else { x = (int)a[i] - 48 + przeniesienie; wynik[i] = x % 10; przeniesienie = x / 10; } } else { if (mn) { mn--; x = (int)a[i] + (int)a[mn] - 96 + przeniesienie; wynik[i] = x % 10; przeniesienie = x / 10; } else { x = (int)b[i] - 48 + przeniesienie; wynik[i] = x % 10; przeniesienie = x / 10; } } } cout << "Suma:"; if (przeniesienie) cout << 1; for (i = 0; i < mx; i++) cout << wynik[i]; cout << endl; return 0; } |