#include <fstream>
using namespace std;
int main()
{
ifstream in("INPUT.TXT");
ofstream out("OUTPUT.TXT");
int X,Y;
in>>X>>Y;
int Cx=1,Cy=1,Year=X-2;
while(--Year)
{
int tmp=Cx+Cy;
Cx=Cy;
Cy=tmp;
}
int x,y=0;
do
{
int numerator=Y-y*Cy;
x=numerator/Cx;
if(numerator%Cx)continue;
out<<x<<' '<<y<<endl;
} while (y++<=x);
return 0;
}
#include <fstream>
#include <vector>
#include <algorithm>
#include <functional>
using namespace std;
class result
{
public:
result(int kaprecar,int steps)
:_kaprecar(kaprecar)
,_steps(steps)
{}
int kaprecar()
{
return _kaprecar;
}
int steps()
{
return _steps;
}
private:
int _kaprecar;
int _steps;
};
result calc(int N)
{
typedef vector<char> dVector;
dVector digits;
int iterCount=0;
while(true)
{
int oldN=N;
int count=4;
while(count-->0)
{
digits.push_back(N%10);
N/=10;
}
sort(digits.begin(),digits.end(),less<int>());
int N1=0,N2=0,mult=1;
for(dVector::const_iterator it=digits.begin();it!=digits.end();++it)
{
N1=N1*10+*it;
N2=*it*mult+N2;
mult*=10;
}
digits.clear();
N=N2-N1;
++iterCount;
if(oldN==N)
{
return result(N,iterCount-1);
}
}
}
int main()
{
int N;
ifstream in("INPUT.TXT");
ofstream out("OUTPUT.TXT");
in>>N;
result r=calc(N);
out<<r.kaprecar()<<endl
<<r.steps()<<endl;
return 0;
}
Если Вы уже зарегистрированы на Портале - войдите в систему, если Вы еще не регистрировались - пройдите простую процедуру регистрации.