Есть код на С++. Может кто нибуть его на ПХП переписать. Условия задачи следующие. Есть шестизначный номер трамвайного билета, проверить, что он счастливый, а также найти предыдущий счастливый номерок и следующий. Билет считается счастливым, если сумма первых трех цифр равняется сумме вторых трех цифр. Буду благодарен кто сможет в предпраздничные дни уделить время. С наступающим вас.
#include <string>
#include <iostream>
using namespace std;
int i,j,k,l,num;
string s;
int main()
{
int check();
int s_to_num();
int num_to_s(int a);
setlocale(0, "");
cout << "Введите номер билета:\n";
getline(cin, s);
//s="123007";
//s="003021";
if(s.length()==6)
{
k=check();
if(k==1)
{
cout<<"Счастливый билет!!!"<<endl;
for(i=0;i<6;i++)
cout<<s[i];
cout<<endl;
}
else
{
cout<<"Не cчастливый билет!!!"<<endl;
for(i=0;i<6;i++)
cout<<s[i];
cout<<endl;
}
cout<<"Предыдущий счастливый билет!!!"<<endl;
k=s_to_num();
for(j=num-1;j>0;j--)
{
k=num_to_s(j);
k=check();
if(k==1){
for(i=0;i<6;i++)
cout<<s[i];
cout<<endl;
break;
}
}
cout<<"Следующий счастливый билет!!!"<<endl;
for(j=num+1;j<num+1000;j++)
{
k=num_to_s(j);
k=check();
if(k==1){
for(i=0;i<6;i++)
cout<<s[i];
cout<<endl;
break;
}
}
}
else
cout<<"Номер должен быть шестизначным"<<endl;
system("pause");
return 0;
}
int check()
{
l=s[3]+s[4]+s[5]-144;
if(l==s[0]+s[1]+s[2]-144)
return 1;
else
return 0;
}
int s_to_num()
{
//Преобразование в число
for(i=5;i>-1;i--)
num=num+(s[i]-48)*pow(10,(float)(5-i));
return 0;
}
int num_to_s(int a)
{
int num_i;
num_i=a;
for(i=0;i<6;i++)
{
num_i=a/10;
s[5-i]=a-num_i*10+48;
a=num_i;
}
return 0;
}