hdu1316 大数
来源:互联网 发布:ubuntu使用搜狗输入法 编辑:程序博客网 时间:2024/04/30 13:24
题意:
给你一个区间,问这个区间有多少个斐波那契数.
思路:
给你一个区间,问这个区间有多少个斐波那契数.
思路:
水的大数,可以直接模拟,要是懒可以用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;}
0 0
- hdu1316 大数
- hdu1316 斐波纳契 大数 二分
- hdu1316 水大数
- HDU1316 How Many Fibs? 【大数】
- HDU1316 How Many Fibs? 【大数】
- hdu1316 How Many Fibs?(大数)
- HDU1316:How Many Fibs?(大数JAVA)
- hdu1316
- hdu1316
- hdu1316
- hdu1316(大数的斐波那契数)
- 斐波那契数列 大数加法hdu1316
- hdu1316 How Many Fibs? (java大数练习第二弹)
- Java 大数之大数高精度斐波那契 UVA_10579&&HDU1316 How many Fibs?
- HDU1316:How Many Fibs?
- hdu1316 How Many Fibs?
- hdu1316 How Many Fibs?
- hdu1316 How Many Fibs?
- 基于hadoop2.2的map端表关联(map side join)mapreduce实现
- SQLLDR详解与例子
- 9.2
- 关于在集合中加入StringBuffer的问题
- android创建sqlite数据库及在SD卡上创建数据库
- hdu1316 大数
- ThreadPoolExecutor使用和思考-线程池大小设置与BlockingQueue的三种实现区别
- [LeetCode]Merge Two Sorted Lists
- 初识C++
- java 作业 4.1
- Sqlplus中的VARIABLE以及使用VARIABLE之后使用execute。
- if有空的话 C++
- java作业 4.2
- java 4.3