第一题:求类似斐波那契数列中的第n个数
创新互联公司成立与2013年,是专业互联网技术服务公司,拥有项目网站建设、网站制作网站策划,项目实施与项目整合能力。我们以让每一个梦想脱颖而出为使命,1280元万秀做网站,已为上家服务,为万秀各地企业和个人服务,联系电话:18982081108
先来看下什么是斐波那契数列:
指的是这样一个数列:1、1、2、3、5、8、13、21、34、……在数学上,斐波那契数列以如下被以递推的方法定义:F(1)=1,F(2)=1, F(n)=F(n-1)+F(n-2)(n=3,n∈N*)
数列中的每个数,都等于前两个数字之和。第一数和第二数规定为1.
回到图中的程序,n=2时,返回2,那么就是将第一个和第二个数规定为2。
即:
fib(1)=2, fib(2)=2
根据公式:
fib(3) = fib(1)+fib(2)=2+2=4
代码的用递归实现,若不懂递归,可google之或百度之。
第二题:
main函数里的变量a,b,c都没有用上,迷惑你用的。回到d
d=f(f(3,4), f(3,5))
再看f这个函数
f(3,4) = f(x,y)=(y-x)*x=(4-3)*3=3
f(3,5) = (5-3)*3=6
因此,d=f(f(3,4), f(3,5))=f(3,6)=(6-3)*3=9
第三题 这个函数里面的赋值写法我还没见过,容我再想想。
#includestdio.h
#includemath.h
void zero(float a,float b);
void left();
void right(float a,float b,float c);
void main()
{
float a,b,c,d;
printf("请输入a,b,c的值:\n");
scanf("%f %f %f",a,b,c);
d=b*b-4*a*c;
if(d==0)zero(a,b);
if(d0)left();
if(d0)right(a,b,c);
}
void zero(float a,float b)
{
printf("%f",-b/2*a);
}
void left()
{
printf("no roots!\n");
}
void right(float a,float b,float c)
{
float x1,x2;
x1=(-b+sqrt(b*b-4*a*c))/(2*a);
x2=(-b-sqrt(b*b-4*a*c))/(2*a);
printf("%f %f \n",x1,x2);
}
#includestdio.h
#includemath.h
float e,f,g,h,i;
int main()
{
float yishigen(float x,float y);
float denggen(float x);
float xugen();
float a,b,c,p,q,k;
scanf("%f,%f,%f",a,b,c);
p=-b/(2*a);
q=b*b-4*a*c;
k=sqrt(q)/(2*a);
if(q0)
{
yishigen(p+k,p-k);
printf("x1=%f,x2=%f",p+k,p-k);
}
else if(q==0)
{
denggen(p);
printf("x1=x2=%f",p);
}
else
{
xugen();
printf("No!");
}
}
float yishigen(float x,float y)
{
h=-f/(2*e);
i=sqrt(e*e-4*e*f);
x=h+i;
y=h-i;
}
float denggen(float x)
{
h=-f/(2*e);
x=h;
}
float xugen()
{
printf("No!");
}经过运行是可以的,这道题有点难度,我也写了几次,希望对你有帮助
#includestdio.h
#includemath.h
main()
{
void x(float,float,float,float);
void y(float,float,float);
float a,b,c,d=0;
printf("输入a b c的值:\n");
scanf("%f %f %f",a,b,c);
d=(b*b)-(4.0*a*c);
if (d0)
x(a,b,c,d);
else if (d==0)
y(a,b,c);
else
printf("无解");
}
void x(float a,float b,float c ,float d)
{
float x1,x2;
x1=(-b+sqrt(d))/(2.0*a);
x2=(-b-sqrt(d))/(2.0*a);
printf("x1=%.3f\nx2=%.3f\n",x1,x2);
}
void y(float a,float b,float c)
{
float x1;
x1=-b/(2.0*a);
printf("x1=x2=%.3f",x1);
}
#include stdio.h
float max(float a[])
{
int i;
float m = a[0];
for(i=1;i10;i++)
{
if(ma[i])
m = a[i];
}
return m;
}
float min(float a[])
{
int i;
float m = a[0];
for(i=1;i10;i++)
{
if(ma[i])
m = a[i];
}
return m;
}
float aver(float a[])
{
float sum = 0;
int i;
for(i=0;i10;i++)
sum += a[i];
return sum / 10;
}
int main()
{
float num[10];
int i;
for(i=0;i10;i++)
scanf("%f",num[i]);
printf("The max number is %f\n",max(num));
printf("The min number is %f\n",min(num));
printf("The average number is %f\n",aver(num));
return 0;
}
#include stdio.hvoid change(char *n,int N)
{
char temp;
int i;
for(i=0;iN-1;i++)
{
for(int j=N-1;ji;j--)
{
if(n[j]n[j-1])
{
temp=n[j];
n[j]=n[j-1];
n[j-1]=temp;
}
}
}
}void main()
{
char ch[4];
gets(ch);
change(ch,3);
puts(ch);
}