Pagini recente » Cod sursa (job #1912609) | Cod sursa (job #2635048) | Cod sursa (job #2474434) | Cod sursa (job #2626032) | Cod sursa (job #1508080)
#include <fstream>
#include <algorithm>
#include <cstring>
#include <array>
#include <iostream>
using namespace std;
constexpr int maxn = 2000000;
using bignum = array<char, maxn+1>;
void find_size(bignum& a){
for(int i = 1; i <= maxn; ++i){
if(a[i] != '0'){
a[0] = i; } } }
void div(bignum& a, const long long b){
for(int i = a[0], x = 0, tmp; i > 0; --i){
x *= 10;
x += a[i]-'0';
a[i] = x/b+'0';
x %= b; }
find_size(a); }
void mult(bignum& a, const long long b){
for(int i = 1, x = 0; i <= a[0] || x; ++i){
x += (a[i]-'0') * b;
a[i] = x%10+'0';
x /= 10; }
find_size(a); }
void add(bignum& a, long long b){
for(int i = 1, x = 0; i <= a[0] || x; ++i, b /= 10){
x += a[i] - '0' + (b%10);
a[i] = (x%10) +'0';
x /= 10; }
find_size(a); }
void citeste(ifstream& f, bignum& a){
f.get(&a[1], maxn, '\n');
a[0] = strlen(&a[1]);
for(int i = a[0]+1; i <= maxn; ++i){
a[i] = '0'; }
reverse(begin(a)+1, begin(a) + a[0]+1); }
void scrie(ostream& g, const bignum& a){
for(int i = a[0]; i > 0; --i){
g << a[i]; } }
int main(){
ifstream f("next.in");
ofstream g("next.out");
bignum n;
int d;
citeste(f, n);
f >> d;
div(n, d);
mult(n, d);
add(n, d);
scrie(g, n);
return 0; }