编写函数计算并输出n包括n以内能被5或9整除的所有自然数的倒数之和用C语言
时间: 2024-12-24 19:35:23 浏览: 4
c代码-11.计算并输出n(包括n)以内能被3或7整除的所有自然数的倒数之和。例如,从键盘给n输入30后,输出为:S=1.226323。
在C语言中,编写一个函数来计算并输出n以内所有能被5或9整除的自然数的倒数之和,你可以这样做:
```c
#include <stdio.h>
// 函数声明
double sum_of_divisors_reciprocal(int n);
int main() {
int n;
printf("请输入一个正整数n: ");
scanf("%d", &n);
// 计算并输出结果
double result = sum_of_divisors_reciprocal(n);
printf("从1到%d内,能被5或9整除的数的倒数之和为: %.2f\n", n, result);
return 0;
}
// 计算函数,递归实现
double sum_of_divisors_reciprocal(int num) {
if (num <= 0) {
return 0; // 如果num小于等于0,直接返回0
}
double divisor_sum = 0.0;
if (num % 5 == 0 || num % 9 == 0) { // 如果num能被5或9整除
divisor_sum += 1.0 / num; // 添加它的倒数
}
// 递归处理num的因子
divisor_sum += sum_of_divisors_reciprocal(num - 1); // 减去最后一个已检查的数,避免重复计数
return divisor_sum;
}
```
这个程序首先会提示用户输入一个整数n,然后调用`sum_of_divisors_reciprocal`函数计算并输出符合条件的数的倒数之和。
阅读全文