例:求Fibonacci数列前40个数
#include <stdio.h> int main() { long f1,f2,fn; int i; f1=f2=1; printf("%ld\t%ld\t",f1,f2); for(i=3; i<=40; i++) { fn=f1+f2; printf("%ld\t",fn); if(i%5==0) printf("\n"); f1=f2; f2=fn; } return 0; }
另解:在“迭代”中,赋予变量新的含义
#include <stdio.h> int main() { long f1,f2; int i; f1=f2=1; for(i=1; i<=20; i++) { printf("%ld\t%ld\t",f1,f2); if(i%2==0) printf("\n"); f1=f1+f2; //左f1代表第3个数,是第1、2数之和 f2=f2+f1; //左f2代表第4个数,是第2、3数之和 } return 0; }
求级数公式(精确到小数点后5位)
#include <stdio.h> #include <math.h> int main() { double x, sum=1, term=1; int i=1;//一定要赋初值 scanf("%lf", &x); while(fabs(term)>=1e-5) { term=term*(-1)*x*x/((2*i)*(2*i-1)); sum=sum+term; i++; } printf("%f\n", sum); return 0; }
另一个正解
#include <stdio.h> #include <math.h> int main() { double x, sum=0, term=1; int i=1; scanf("%lf", &x); while(fabs(term)>=1e-5) { sum=sum+term; term=term*(-1)*x*x/((2*i)*(2*i-1)); i++; } printf("%f\n", sum); }
时间: 2024-10-26 01:23:18