20111028

ACM 10696 f91

做遞迴可求解。
但不要真的用遞迴去解。
由f91(N) = f91(f91(N+11)),
可以發現,當N <= 100時,
會一直做+11的動作,再call f91()做判斷,
直到N = 101,此時輸出91。
所以N < 101就是輸出91,
N >= 101時輸出N - 11。

/* ACM 10696 f91
 * mythnc
 * 2011/10/28 10:17:55   
 * run time: 0.108
 */
#include <stdio.h>
 
int f91(int);
 
int main(void)
{
    int n;
 
    while (scanf("%d", &n)) {
        if (n == 0)
            return 0;
        printf("f91(%d) = %d\n", n, f91(n));
    }
}
 
/* f91: f91 function */
int f91(int n)
{
    if (n > 100)
        return n - 10;
    else
        return 91;
}

沒有留言: