1>用C语言编写一个递归函数,它接受一个以参数形式传递而来的正整数,然后输出一个整数,要求在该整数中,原整数的每一位都要出现两次。例如,如果输入的整数是123,那么输出的数就应该是112233。
2>用C++编写二进制搜索算法作为函数模版。此函数模版应该获得三个参数,即:要从中进行搜索的数组、要搜索的元素以及数组的大小。
我的代码如下,可能每个人对题目理解有些偏差
/*
第一题
*/
void recursion( int param)
{
if (param > 9 )
{
char temp[ 10 ];
sprintf(temp, " %d " , param);
printf( " %c%c " , temp[ 0 ], temp[ 0 ]);
param = atoi( & temp[ 1 ]);
recursion(param);
}
else
{
printf( " %d%d " , param, param);
}
}
void recursion( int param)
{
if (param > 9 )
{
char temp[ 10 ];
sprintf(temp, " %d " , param);
printf( " %c%c " , temp[ 0 ], temp[ 0 ]);
param = atoi( & temp[ 1 ]);
recursion(param);
}
else
{
printf( " %d%d " , param, param);
}
}
//
第二题
template < class T >
bool search(T * src, T target, int size)
{
for ( int i = 0 ; i < size; i ++ )
{
if ( ! memcmp( & src[i], & target, sizeof (T)))
{
return true ;
}
}
return false ;
}
template < class T >
bool search(T * src, T target, int size)
{
for ( int i = 0 ; i < size; i ++ )
{
if ( ! memcmp( & src[i], & target, sizeof (T)))
{
return true ;
}
}
return false ;
}