———write a recursive version of function which returns the position of the first appearance of a specified digit in a positive number.count from right and starts from 1.
i.e:input 1234 and 3,output 2,input 123241 and 2,output 3.
以上都不难,可以实现,但是他又规定如果那个digit不在那个数中的话,输出0,例如:input 234 and 1,output 0.这可把我难倒了。
注意:该程序要用recursive version写。
请高手指教,很急,谢谢!
My C source code, have debugged in TC
#include "stdio.h"
int position(unsigned long number, int digit)
{
int i=0, remainder;
unsigned long number0=number;
while (number0!=0)
{
number0=number/10;
remainder=number-number0*10;
number=number0;
if (remainder==digit)
{
i++;break;
}
else
i++;
}
if (number0==0)
return(0);
else
return(i);
}
void main()
{
unsigned long number=324263555;
int digit=8;
printf("(%ld,%d)=%d\n",number,digit,position(number,digit));
}
int position(unsigned long number, int digit)
{
int i=0, remainder;
unsigned long number0=number;
while (number0!=0)
{
number0=number/10;
remainder=number-number0*10;
number=number0;
if (remainder==digit)
{
i++;break;
}
else
i++;
}
if (number0==0)
return(0);
else
return(i);
}
void main()
{
unsigned long number=324263555;
int digit=8;
printf("(%ld,%d)=%d\n",number,digit,position(number,digit));
}