#include <iostream>
#include <string>
using namespace std;
string add(const string &a,const string &b)
{
int dig = 0;//进位符
string a1,b1;
if(a.size()>b.size())
{
a1 = a;
b1 = b;
}else
{
a1 = b;
b1 = a;
}
int clen = a1.size() - b1.size();
for (int i = 0; i < clen ; i++)
{
string zero(1,'0');
b1.insert(0,zero);
}
for (int i = a1.size() - 1; i >= 0 ; i--)
{
int t = (int)a1[i] + (int)b1[i] - '0' - '0';
a1[i] = char(( t + dig)%10 + '0');
dig = ( t + dig) /10;
}
if(dig!=0)
{
string d(1,char(dig+48));
a1.insert(0,d);
}
return a1;
}
int main()
{
int T;
string A,B;
cin>>T;
for (int i = 0; i < T; i++)
{
cin>>A;
cin>>B;
cout<<"Case "<<i+1<<":"<<endl;
cout<<A<<" + "<<B<<" = "<<add(A,B)<<endl;
if(i!=T-1)
cout<<endl;
}
return 0;
}
#include <iostream>
#include <string>
using namespace std;
string add(const string &a,const string &b)
{
int dig = 0;
string a1,b1;
if(a.size()>b.size())
{
a1 = a;
b1 = b;
}
else
{
a1 = b;
b1 = a;
}
int clen = a1.size() - b1.size();
for (int i = 0; i < clen ; i++)
{
string zero(1,'0');
b1.insert(0,zero);
}
for (int i = a1.size() - 1; i >= 0 ; i--)
{
int t = (int)a1[i] + (int)b1[i] - '0' - '0';
a1[i] = char(( t + dig)%10 + '0');
dig = ( t + dig) /10;
}
if(dig!=0)
{
string d(1,char(dig+48));
a1.insert(0,d);
}
return a1;
}
int main()
{
string record[10000];
record[1]=record[2]=record[3]=record[4]="1";
for(int i=5; i<7039; i++)
{
record[i] = add(add(record[i-1],record[i-2]),add(record[i-3],record[i-4]));
}
int T;
while(cin>>T)
cout<<record[T]<<endl;
}