C 语言范例 - 计算一个数的 n 次方
计算一个数的 n 次方,例如: 23,其中 2 为基数,3 为指数
使用 while
/** * file: main.c * author: 简单教程(www.twle.cn) */ #include <stdio.h> int main() { int base, exp; long long result = 1; printf("基数: "); scanf("%d", &base); printf("指数: "); scanf("%d", &exp); while (exp != 0) { result *= base; --exp; } printf("结果:%lld\n", result); return 0; }
编译运行范例,输出结果如下
$ gcc main.c && ./a.out 基数: 5 指数: 3 结果:125
使用 pow() 函数
/** * file: main.c * author: 简单教程(www.twle.cn) */ #include <stdio.h> #include <math.h> int main() { double base, exp, result; printf("基数: "); scanf("%lf", &base); printf("指数: "); scanf("%lf", &exp); // 计算结果 result = pow(base, exp); printf("%.1lf^%.1lf = %.2lf\n", base, exp, result); return 0; }
编译运行范例,输出结果如下
$ gcc main.c && ./a.out 基数: 5 指数: 3 5.0^3.0 = 125.00
使用递归
/** * file: main.c * author: 简单教程(www.twle.cn) */ #include <stdio.h> int power(int n1, int times); int main() { int base, times, result; printf("基数: "); scanf("%d",&base); printf("指数(正整数): "); scanf("%d",×); result = power(base, times); printf("%d^%d = %d\n", base, times, result); return 0; } int power(int base, int times) { if ( times != 0) return (base*power(base, times - 1 )); else return 1; }
编译运行范例,输出结果如下
$ gcc main.c && ./a.out 基数: 5 指数(正整数): 3 5^3 = 125