编写一个程序,对于1到n的每个整数n,输出log2(n),根号n,n,n*log2(n),n平方,n立方,2的n次方,n的阶乘
时间: 2024-09-07 16:02:50 浏览: 88
要编写一个程序来计算并打印从1到n(包括n)的多个值,我们可以使用循环结构遍历这个范围,并进行相应的数学运算。这里有一个简单的C语言示例:
```c
#include <stdio.h>
#include <math.h> // 包含数学库,用于sqrt和log2
int main() {
int n;
printf("Enter a positive integer (n): ");
scanf("%d", &n);
for (int i = 1; i <= n; ++i) {
// 计算并打印各个值
double log2_i = log2(i); // 对数 base 2
double sqrt_i = sqrt(i); // 平方根
printf("For n = %d:\n", i);
printf("\tlog2(n) = %.6f\n", log2_i);
printf("\tsqrt(n) = %.6f\n", sqrt_i);
printf("\tn = %d\n", i);
printf("\tn * log2(n) = %.6f\n", i * log2_i);
printf("\tn^2 = %d\n", i * i);
printf("\tn^3 = %d\n", i * i * i);
printf("\t2^n = %d\n", pow(2, i)); // 使用pow函数计算2的幂
// 计算阶乘时需要注意,直接递归可能会导致溢出,这里我们用循环来计算
long long factorial = 1;
for (long long j = 1; j <= i; ++j) {
factorial *= j;
}
printf("\tn! = %lld\n", factorial);
printf("\n");
}
return 0;
}
```
在这个程序中,`log2` 和 `sqrt` 函数分别来自 `<math.h>` 库,用来计算对数和平方根。注意,阶乘计算部分使用了 `long long` 类型来存储可能较大的结果。
阅读全文