Pagini recente » Cod sursa (job #83803) | Cod sursa (job #1274413) | Cod sursa (job #2137603) | Cod sursa (job #236016) | Cod sursa (job #3216814)
#include <bits/stdc++.h>
using namespace std;
long long n[2005],a[2005],b[2005],r[2005],i,j,t;
char c;
ifstream fin("sarpe.in");
ofstream fout("sarpe.out");
int main()
{
i=1;
while(fin>>c){
n[i]=c-'0';
i++;
}
n[0]=i-1;
for(i=1;i<=n[0]/2;i++)
swap(n[i],n[n[0]-i+1]);
for(i=0;i<=n[0];i++)
a[i]=b[i]=n[i];
i=1;
while(i<=a[0]&&a[i]==0) i++;
a[i--]--;
for(;i>0;i--)
a[i]=9;
while(a[a[0]]==0) a[0]--;
i=1;
while(i<=b[0]&&b[i]==0) i++;
if(i>1){
b[i--]--;
for(;i>1;i--)
b[i]=9;
b[1]=8;
}else{
if(b[1]>1) b[1]-=2;
else{
i=2;
while(i<=b[0]&&b[i]==0) i++;
b[i--]--;
for(;i>0;i--)
b[i]=9;
}
}
while(b[b[0]]==0) b[0]--;
for(i=1;i<=n[0];i++){
n[i]*=4;
}
t=0;
for(i=1;i<=n[0];i++){
t+=n[i];
n[i]=t%10;
t/=10;
}
while(t>0){
n[0]++;
t+=n[n[0]];
n[n[0]]=t%10;
t/=10;
}
cout<<"4n= ";
for(i=n[0];i>0;i--)
cout<<n[i];
cout<<'\n';
for(i=1;i<=a[0];i++){
a[i]*=2;
}
t=0;
for(i=1;i<=a[0];i++){
t+=a[i];
a[i]=t%10;
t/=10;
}
while(t>0){
a[0]++;
t+=a[a[0]];
a[a[0]]=t%10;
t/=10;
}
cout<<"2(n-1)= ";
for(i=a[0];i>0;i--)
cout<<a[i];
cout<<'\n';
for(i=1;i<=a[0];i++){
for(j=1;j<=b[0];j++){
r[i+j-1]+=a[i]*b[j];
}
}
t=0; r[0]=a[0]+b[0]-1;
for(i=1;i<=r[0];i++){
t+=r[i];
r[i]=t%10;
t/=10;
}
while(t>0){
r[0]++;
t+=r[r[0]];
r[r[0]]=t%10;
t/=10;
}
for(i=0;i<=r[0];i++)
a[i]=r[i];
cout<<"2(n-2)(n-1)= ";
for(i=a[0];i>0;i--)
cout<<a[i];
cout<<'\n';
r[0]=max(a[0],n[0]);
for(i=1;i<=r[0];i++){
t+=a[i]+n[i];
r[i]=t%10;
t/=10;
}
while(t>0){
r[0]++;
r[r[0]]=t%10;
t/=10;
}
for(i=r[0];i>0;i--)
fout<<r[i];
return 0;
}