首页 技术 正文
技术 2022年11月14日
0 收藏 549 点赞 3,178 浏览 1244 个字

题意:

     给你一个区间,问这个区间有多少个斐波那契数.

思路:

     水的大数,可以直接模拟,要是懒可以用JAVA,我模拟的,打表打到1000个就足够用了…


#include<stdio.h>
#include<string.h>

int
a[110] ,b[110];
int
num[1200][110];void csh_num()
{

memset(num ,0 ,sizeof(num));
num[1][1] = 1 ,num[1][0] = 1;
num[2][1] = 2 ,num[2][0] = 1;
for(int
i = 3 ;i <= 1000 ;i ++)
{
for(int
j = 1 ;j <= 105 ;j ++)
num[i][j] = num[i-1][j] + num[i-2][j];
for(int
j = 1 ;j <= 105 ;j ++)
{

num[i][j+1] += num[i][j] / 10;
num[i][j] %= 10;
}
} for(int
i = 3 ;i <= 1000 ;i ++)
{
int
kg = 0 ,sum = 0;
for(int
j = 105 ;j >= 1 ;j --)
{
if(
num[i][j]) kg = 1;
if(
kg) num[i][0]++;
}
}
return ;
}bool
campa(int i ,int la)
{
if(
num[i][0] > la) return 1;
if(
num[i][0] < la) return 0;
for(int
ii = la ;ii >= 1 ;ii --)
{
if(
num[i][ii] == a[ii]) continue;
if(
num[i][ii] > a[ii]) return 1;
else return
0;
}
return
1;
}bool
campb(int i ,int lb)
{
if(
num[i][0] > lb) return 0;
if(
num[i][0] < lb) return 1;
for(int
ii = lb ;ii >= 1 ;ii --)
{
if(
num[i][ii] == b[ii]) continue;
if(
num[i][ii] > b[ii]) return 0;
else return
1;
}
return
1;
}int main ()
{

csh_num();
int
i ,j ,sum;
char
stra[105] ,strb[105];
while(~
scanf("%s %s" ,stra ,strb) && strcmp(stra ,"0") + strcmp(strb ,"0"))
{

memset(a ,0 ,sizeof(a));
int
la = strlen(stra) - 1;
int
tt = 0;
for(
i = la ;i >= 0 ;i --)
a[++tt] = stra[i] - 48; memset(b ,0 ,sizeof(b));
int
lb = strlen(strb) - 1;
tt = 0;
for(
i = lb ;i >= 0 ;i --)
b[++tt] = strb[i] - 48;
la++ ,lb++; sum = 0;
for(
i = 1 ;i <= 1000 ;i ++)
{
if(!
campb(i ,lb)) break;
if(
campa(i ,la)) sum ++;
}
printf("%d\n" ,sum);
}
return
0;
}
相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:8,964
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,486
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,331
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,114
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:7,747
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:4,781