先占位置 保留四位小数的结果为1.1724
第五题
第五题程序
#include "stdafx.h"
#include
int main()
{
int i=0;
float sum=0.0;
for(i=1;i<1000;i++)
{
if((i%7==0&&i%11!=0)||(i%7!=0&&i%11==0))
sum+=1.0/i;
}
printf("\n1000以内能被7整除或被11整除\n\n但是不能同时整除的自然数的倒数之和为:%0.4f\n\n",sum);
return 0;
}
第六题程序
#include "stdafx.h"
#include
int Fibonacci(int a)//求费布拉奇数的函数
{
int sum=0;
if(a==0||a==1) return 1;
else return Fibonacci(a-2)+Fibonacci(a-1);
}
int main()
{
int a,i,k=0;
printf("请输入一个整数\n");
scanf("%d",&a);
for(i=0;k
{ k=Fibonacci(i); } printf("小于%d的费布拉奇数为%d\n",a,k); return 0; } 不懂可追问 烦请采纳 谢谢
第5题:
float sum=0;
for(i=1;i<1000;i++)
{
if (((i%7)==0 && (i%11)!=0) || ((i%7)!=0 && (i%11)==0))
sum+=1/(float)i;
}
如果为了追求效率,可以直接先运算,然后一步求出答案;
(1+1/2+1/3+1/4+...+1/n)*1/7且n*7<1000--->n=142
(1+1/2+1/3+1/4+...+1/n)*1/11且n*11<1000--->n=90
(1+1/2+1/3+1/4+...+1/n)*1/77且n*77<1000--->n=12
(1+1/2+1/3+1/4+...+1/n)=γ + ln(n) (γ =0.5772156649)
所以即求: γ+ln(142)/7+ln(90)/11-ln(12)/77
float sum;
sum = 0.5772156649+log(142)/7+log(90)/11-log(12)/77
第六题就是递归了。
int fibo(int n){ assert(n >= 0); return n < 2 ? n : fibo1(n - 1) + fibo1(n - 2);
}
但是效率低。
第五题,我直接写简单代码
sum=0,
for(i=1,i<1000,i++){
if(i%7==0&&i%11!=0)
sum=sum+1/i:
if(i%7!=0&&i%11==0)
sum=sum+1/i
}
这样最后的sum就是结果。
第六题是递归思想,你先把递归函数编出来,然后输入a,i=Fibonacci(a),i就是结果。