用c语言输入两个正整数n<m<106,输出1/n2+1/(n+1)2+…+1/m2的结果
时间: 2023-09-15 22:15:11 浏览: 235
```c
#include <stdio.h>
int main()
{
int n, m;
double sum = 0;
scanf("%d %d", &n, &m);
for(int i = n; i <= m; i++)
{
sum += 1.0 / (i * i);
}
printf("%.5lf", sum);
return 0;
}
```
相关问题
C语言用函数计算正整数n1到n2的累加和(n1、n2的值由键盘输入)。
以下是一个用C语言编写的函数,用于计算正整数n1到n2的累加和:
```c
#include <stdio.h>
int sum(int n1, int n2) {
int i, result = 0;
for (i = n1; i <= n2; i++) {
result += i;
}
return result;
}
int main() {
int n1, n2;
printf("请输入两个正整数n1和n2:");
scanf("%d %d", &n1, &n2);
printf("累加和为:%d\n", sum(n1, n2));
return 0;
}
```
在上述代码中,我们定义了一个名为`sum`的函数,该函数接受两个参数n1和n2,表示要计算累加和的范围。函数内部使用一个循环来遍历从n1到n2的所有整数,并将它们累加到一个变量`result`中。最后,函数返回累加和。
在`main`函数中,我们首先从键盘输入两个正整数n1和n2,然后调用`sum`函数计算累加和,并将结果打印出来。
使用C++,将一个正整数N进行分解,使得N为多个正整数相加,穷举N的所有分解式。例如:7=6+1,7=5+2,7=5+1+1,... 。是用递归的方式求出正整数N的所有整数分解因子。(1)输入说明:输入小于30的正整数N (2)输出说明:列出N=?+?+…。按递增顺序输出N的所有整数分解式子。递增顺序是指:对于两个分解序列N1={n1,n2,…}和N2={m1,m2,…},若存在i使得n1=m1, … , ni=mi,但是ni+1<mi+1,则n1序列必定在n2序列输出。每个式子由小到大相加,式子间用分号隔开,且每输出4个式子后换行。
以下是使用C语言编写的程序,可以对小于30的正整数N进行分解,输出所有的分解式子:
#include <stdio.h>
void print_partition(int n, int max, int* partition, int len) {
if (n == 0) {
for (int i = 0; i < len; i++) {
printf("%d", partition[i]);
if (i < len - 1) {
printf(" ");
}
}
printf("; ");
if (len % 4 == 0) {
printf("\n");
}
return;
}
for (int i = 1; i <= max && i <= n; i++) {
partition[len] = i;
print_partition(n - i, i, partition, len + 1);
}
}
int main() {
int n;
scanf("%d", &n);
int partition[30];
print_partition(n, n, partition, 0);
return 0;
}
注意:这个程序使用递归的方式求出正整数N的所有整数分解因子,时间复杂度为指数级别,对于较大的N可能会运行很长时间。
阅读全文