用c语言编写函数int fun(int m),计算并返回满足表达式:1+(1+2)+(1+2+3)+(1+2+3+4)+……+(1+2+3+......n)<=m最大的n。例如,当m=10000时,程序输出:n=38。
时间: 2023-09-27 17:11:18 浏览: 191
C语言程序设计-编写函数fun,求任一整数m的n次方;.c
5星 · 资源好评率100%
这是一个计算问题,可以直接回答。以下是使用C语言编写的函数fun(int m)的代码:
```
#include <stdio.h>
int fun(int m) {
int sum = 1, n = 1; // 初始值为1
while (sum <= m) { // 循环计算直到表达式不成立
n++; // 增加n的值
sum += n*(n+1)/2; // 更新sum的值
}
return n-1; // 返回最大的n值
}
int main() {
int m = 10000;
int n = fun(m);
printf("n=%d\n", n);
return 0;
}
```
上述代码中,while循环用于不断增加n的值,计算1 (1 2) (1 2 3)+(1 2 3 4)+…… (1 2 3 ......n)的值sum,并判断是否小于等于给定的值m。最终返回的值是最大的n值即n-1。将给定的m=10000代入该函数,输出结果为n=38。
阅读全文