hdu1316 大数
题意:
给你一个区间,问这个区间有多少个斐波那契数.
思路:
水的大数,可以直接模拟,要是懒可以用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;
}
hdu1316 大数的更多相关文章
- hdu1316(大数的斐波那契数)
题目信息:求两个大数之间的斐波那契数的个数(C++/JAVA) pid=1316">http://acm.hdu.edu.cn/showproblem.php? pid=1316 这里 ...
- Java大数统计-hdu1316
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1316 题目描述: 给你一个范围,问你在这个范围内有多少斐波拉契数. 代码实现: import java ...
- hdu1316 水大数
题意: 给你一个区间,问这个区间有多少个斐波那契数. 思路: 水的大数,可以直接模拟,要是懒可以用JAVA,我模拟的,打表打到1000个就足够用了... #include<s ...
- HDU中大数实现的题目,持续更新(JAVA实现)
HDU1002:大数加法,PE了N次 import java.util.Scanner; import java.math.*; public class Main { public static v ...
- 大数问题,通常用JAVA
e.g. HDU1002 简单加法 import java.math.BigInteger; import java.util.Scanner; public class Main { public ...
- BZOJ 3110: [Zjoi2013]K大数查询 [树套树]
3110: [Zjoi2013]K大数查询 Time Limit: 20 Sec Memory Limit: 512 MBSubmit: 6050 Solved: 2007[Submit][Sta ...
- HDU 4006The kth great number(K大数 +小顶堆)
The kth great number Time Limit:1000MS Memory Limit:65768KB 64bit IO Format:%I64d & %I64 ...
- c语言经典算法——查找一个整数数组中第二大数
题目: 实现一个函数,查找一个整数数组中第二大数. 算法思想: 设置两个变量max1和max2,用来保存最大数和第二大数,然后将数组剩余的数依次与这两个数比较,如果这个数a比max1大,则先将max1 ...
- 杨氏矩阵:查找x是否在矩阵中,第K大数
参考:http://xudacheng06.blog.163.com/blog/static/4894143320127891610158/ 杨氏矩阵(Young Tableau)是一个很奇妙的数据结 ...
随机推荐
- rest framework renderers
渲染器 前TemplateResponse实例可以被返回给客户端,它必须被渲染.渲染过程需要模板和上下文的中间表示,并把它变成能够提供给客户端的最后一个字节流. - Django文档 REST框架包含 ...
- 一文弄懂js的执行上下文与执行上下文栈
目录 执行上下文与执行上下文栈 变量提升与函数提升 变量提升 函数提升 变量提升与函数提升的优先级 变量提升的一道题目引出var关键字与let关键字各自的特性 执行上下文 全局执行上下文 函数(局部) ...
- dex、apk完整性校验
对Dex进行完整性的检查,可通过CRC,或者Hash值.可将校验值放到String资源文件里,或者放到服务器中. 在代码中完成校验值对比逻辑,此部分代码后续不能再改变,否则CRC值会发生变化: 从生成 ...
- 07-Spring ConfigurationClassPostProcessor
ConfigurationClassPostProcessor 功能 此类是一个后置处理器类,主要功能是参与 BeanFactory 中 BeanDefinition 的操作和 BeanDefinit ...
- 搞懂 ZooKeeper 集群的数据同步
本文作者:HelloGitHub-老荀 Hi,这里是 HelloGitHub 推出的 HelloZooKeeper 系列,免费开源.有趣.入门级的 ZooKeeper 教程,面向有编程基础的新手. 项 ...
- Python数据分析入门(一):搭建环境
Python版本: 本课程用到的Python版本都是3.x.要有一定的Python基础,知道列表.字符串.函数等的用法. Anaconda: Anaconda(水蟒)是一个捆绑了Python.cond ...
- Android Studio之圆形按钮设计
•效果展示图 •实现方法 点击 app/src/main/res 找到 drawable 文件夹,右击->New->Drawable Resource File. 创建一个 $drawab ...
- Android Studio的基本开发环境,配置阿里云源
原创文章,转发请注明出处. 安装Android Studio 安装文件下载地址:https://developer.android.google.cn/studio/ 下载Gradle 由于国内的网络 ...
- Linux 磁盘管理(df fu fdisk mkfs mount)
Linux 磁盘管理 Linux磁盘管理好坏直接关系到整个系统的性能问题. Linux磁盘管理常用三个命令为df.du和fdisk. df : 列出文件系统的整体磁盘使用量 du : 检查磁盘空间使用 ...
- Github Pages+Gridea搭建个人博客
1 概述 Github Pages可以用来托管个人网站,静态的,便于用来实现博客,可以在一个仓库的settings中开启: Gridea是一个静态博客写作客户端,所有文件都在本地,没有数据库,实现简单 ...