Pagini recente » Cod sursa (job #2581103) | Cod sursa (job #253298) | Cod sursa (job #257377) | Cod sursa (job #214689) | Cod sursa (job #2259721)
#include <fstream>
#include <cmath>
#include <cstring>
using namespace std;
ifstream fin("next.in");
ofstream fout("next.out");
const int NMAX=1000;
void citeste(int v[NMAX])
{
char s[NMAX];
fin.getline(s,NMAX);
memset(v,0,NMAX*4);
int i,n;
n=strlen(s);
for(i=n-1;i>=0;i--)
v[++v[0]]=s[i]-'0';
}
void print(int v[])
{
int i;
for(i=v[0];i>=1;i--)
fout<<v[i];
fout<<"\n";
}
void adunare(int a[],int c[],int k)
{
int tr,i,aux;
memset(c,0,NMAX*4);
c[0]=a[0];
tr=k;
for(i=1;i<=c[0];i++)
{
aux=a[i]+tr;
c[i]=aux%10;
tr=aux/10;
}
}
void egal(int a[],int b[])
{
int i;
a[0]=b[0];
for(i=a[0];i>=1;i--)
a[i]=b[i];
}
void cat(int a[],int c[],int k)
{
int r=0,i,l=1;
int aux[NMAX];
c[0]=a[0];
for(i=a[0];i>=1;i--)
{
r=r*10+a[i];
c[i]=r/k;
r=r%k;
}
while(c[0]>1 && c[c[0]]==0)
c[0]--;
}
void produs(int a[],int c[],int k)
{
int i,tr,aux,j,l;
memset(c,0,NMAX*4);
c[0]=a[0];
for(i=1;i<=c[0];i++)
c[i]=a[i]*k;
tr=0;
for(i=1;i<=c[0];i++)
{
aux=c[i]+tr;
c[i]=aux%10;
tr=aux/10;
}
while(tr)
{
c[++c[0]]=tr%10;
tr=tr/10;
}
}
void edit(int a[],int c[],int k)
{
cat(a,c,k);
adunare(c,a,1);
produs(a,c,k);
}
int main()
{
int a[NMAX],aux[NMAX],c[NMAX];
unsigned long long k;
citeste(a);
fin>>k;
edit(a,c,k);
print(c);
return 0;
}