int main()
{
int m,p=0,i=0,x=0,n,q=0
scanf("%d",&n)
int a[10000]
for(m=0m<nm++)
{
scanf("%d",&a[m])
if(m>0)
{
if(a[m]==a[m-1])
{
i=i+1
乱凳 p=1
}
哗绝旅 else
{
if(i>q)
{
q=i
}
i=0
}
}
}
x=q
q=0
if(p==0)
{
printf("No equal number list.\n")
return 0
}
else
for(m=0m<nm++)
{
if(m>0)
if(a[m]==a[m-1])
{
i=i+1
}
else
{
if(i>q)
{
q=i
}
i=0
}
if(q==x)
宏扰 break
}
printf("The longest equal number list is from %d to %d.\n",m-q,m)
return 0
}
#include <stdio.h>int fib( int n )
void PrintFN( int m, int n )
int main()
{
int m, n, t
scanf("%d %d %d", &m, &n, &t)
printf("fib(%d) = %d\n", t, fib(t))
PrintFN(m, n)
return 0
}
int fib(int n)
{
int i,a=0,b=1,number=0//number为要求的Fib的数,a和b即number前面的两个数
number=a+b
if(n==1 || n==2) //优先判断特殊的两个数
number=1
else
for(i=3i<=ni++)
{ //i要从3开始,否则会出现错扮稿误,因为1和2已经判断了
a=b
b=number
number=a+b
}//题目中说明的斐波那契数列定义
return number
}
void PrintFN( int m, int n )
{
int i,t=0,count=0
for(i=1i<21i++)
{ //题中范围最大不超过10000,由fib函数可知fib(20)<10000<fib(21),这个自己百度
if(fib(i)>=m &&fib(i)<=n)
{
if(count!=0)
printf(" ")//题目要求行末不能出现空格,因此用if使除第一个数之外前面加空格
printf("%d",fib(i))//当fib值在这个[m,n]的区间时,枣咐输出这个fib值
count++//累加count值,如果区间无fib数,即凳缺纯count为0
}
}
if(count==0)//当count为0时,即区间无fib数,输出题目要求语句
printf("No Fibonacci number")
}
clccleara1 = 1
a2 = 2
a3 = 0
i = 2
while(a3<=10000)
i = i + 1
a3 = a1 + a2
a1 = a2
a2 = a3
end
a3 % 元素值察差
i% 位置
测试结果:
a3 = 10946
i = 21
该数森兄列此没袭
1 1 2 3 5 8 13 21 345589 144 233 377 610 987 1597 258441816765 10946
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)