unsigned long long rpow(int n, int p) {
return p ? p==1 ? n : n * rpow(n,p-1) : 1;
}
int main(int argc, char **argv) {
if(argv[1])
if(argv[2]) {
int n = atoi(argv[1]);
int p = atoi(argv[2]);
printf("%llu\n",rpow(n,p));
}
return 0;
}
Name:
Anonymous2009-03-05 6:11
uintmax_t rpow_aux(uintmax_t, uintmax_t, uintmax_t) __attribute__ ((const, always_inline));
uintmax_t rpow_aux(uintmax_t n, uintmax_t p, uintmax_t a) {
return p == 0 ? a : rpow_aux(n, p - 1, a * n); }
uintmax_t rpow(uintmax_t n, uintmax_t p){
return p < 1 ? 1 : rpow_aux(n, p, 1); }