首页 > 试题广场 >

函数digit(n,k)的功能是求正整数n中从右端开始的第k

[问答题]

函数digit(n,k)的功能是求正整数n中从右端开始的第k(≥1)个数字的值(k从1开始),如果k超过了n的位数,则函数返回-1;否则返回n中第k个数字。

例如:digit(264639,3)=5digit(7622,5)=-1

要求分别用递归和非递归设计该函数。

int digitA(int n,int num) {
    
    while (--num&&n!=0) {
        n=n/10;
    }
    if (n==0) {
        return -1;
    } else {
        return n%10;
    }
    
}

int digitD(int n,int num) {
    
    if (n==0) {
        return -1;
    }
    if (num==1) {
        return n%10;
    }
    
    return digitD(n/10,num-1);
    
}
发表于 2017-12-05 20:52:38 回复(0)