P073 n以内所有能被5或9整除的自然数的倒数之和 ★

03-程序设计题 软件121, 唐鼎威 1895浏览

所属年份:2011.3
请编写函数fun,该函数的功能是:计算并输出n(包括n)以内所有能被5或9整除的自然数的倒数之和。
例如,若主函数中从键盘给n输入20后,则输出为S= 0.583333。

#include <stdio.h>
double fun(int n)
{

}

int main()
{
    int n;
    double s;
    FILE *out;
    printf("\nInput n:");
    scanf("%d",&n);
    s=fun(n);
    printf("\n\ns=%f\n",s);
    /******************************/
    out=fopen("out.dat","w");
    fprintf(out,"%f\n",fun(30));
    fclose(out);
    /******************************/
    return 0;
}

【解题思路】
本程序中循环语句用来遍历n以内的所有自然数,条件语句用来判断该数是否能被5或9整除,注意此处判断条件中应使用逻辑或”||”运算符。变量sum累加符合要求的数的倒数和。
【参考答案】

double fun(int n)
{
    int i;
    double sum=0.0;
    for(i=1; i<=n; i++)
        if (i%5==0 || i%9==0)
            sum+=1.0/i;
    return sum;
}