HDU 1316 How Many Fibs?(大数+字符串数字比较)
来源:互联网 发布:万科金域名邸二手房 编辑:程序博客网 时间:2024/05/16 08:43
先用大数打表,,
##include "string"#include "iostream"#include "cstdio"#include "cmath"#include "algorithm"#define INF 0x3f3f3f3f#define INFL 0x3f3f3f3f3f3f3f3fLLusing namespace std;typedef long long LL;const int M=55;string add(string x,string y){ string ans ; int lenx = x.length(); int leny = y.length(); if(lenx<leny) { for(int i = 1;i<=leny-lenx;i++) x = "0"+x; } else { for(int i = 1;i<=lenx-leny;i++) y = "0"+y; } lenx = x.length(); int cf = 0; int temp; for(int i = lenx-1;i>=0;i--) { temp = x[i] - '0' + y[i] - '0'+cf; cf = temp/10; temp%=10; ans = char('0'+temp)+ans; } if(cf!=0) ans = char(cf+'0')+ans; return ans;}int compare(string x,string y)// 字符串形式的数的比较大小{ int i,lenx = x.length(),leny = y.length(),leaf; if(x==y) return 0; if(x.length()>y.length()) return 1; if(x.length()<y.length()) return -1; if(x.length()==y.length()) { for(i = 0;i<lenx;i++) { if(x[i]==y[i]) continue; if(x[i]>y[i]) return 1; elsereturn -1; } return 0; } return leaf;}int main(){ int i,j,k,start,eend; string x,y,num[1005];; num[0] = "0"; num[1] = "1"; num[2] = "2"; for(int i = 3;i<=1000;i++) num[i] = add(num[i-1],num[i-2]); while(cin>>x>>y&&x+y="0") { if(y == "0") { printf("0"); continue; } start = eend = 0; for(i = 1;i<1000;i++) { if(compare(x,num[i])==0) { start = i; break; } else if(compare(num[i],x)==-1&&compare(num[i+1],x)==1) { start = i+1; break; } } for(i = 1;i<1000;i++) { if(compare(y,num[i])==0){ eend = i;break; } else if(compare(num[i],y)==-1&&compare(num[i+1],y)==1){ eend = i;break; } } if(x=="0") // 注意 x == 0 时的情况 start = 1; cout<<eend-start+1<<endl; }}
0 0
- HDU 1316 How Many Fibs?(大数+字符串数字比较)
- hdu 1316 How Many Fibs?【JAVA大数】
- HDU 1316 How Many Fibs? 大数
- hdu 1316 How Many Fibs?(大数,二分)
- HDU-1316 How Many Fibs?(Java大数)
- HDU 1316-How Many Fibs?(大数类)
- HDU 1316 How Many Fibs?(二分查找+大数加法)
- HDU 1316 How Many Fibs?(递推,大数相加)
- HDU 1316 How Many Fibs? java大数(水
- HDU 1316 -- How Many Fibs?(Java)
- How Many Fibs? (大数)
- 杭电OJ(HDOJ)1316题:How many Fibs?(大数操作——比较)
- HDU 1316 How Many Fibs?
- HDU 1316 How Many Fibs?
- HDU 1316 How Many Fibs?
- hdu 1316 How Many Fibs?
- hdu 1316 How Many Fibs?
- HDU 1316 How Many Fibs?
- IOS 程序框架原理介绍(iphone应用程序架构和程序组成、调用等)
- quartz的使用
- Java之美[从菜鸟到高手演变]之设计模式二
- c/c++清空stdin缓冲区
- poj 2456 Aggressive cows
- HDU 1316 How Many Fibs?(大数+字符串数字比较)
- 博客开播
- 自动色阶算法实现
- c++ STL容器初探
- 实现对一个8bit数据指定位(例如第n位)的置0或置1操作
- 杭电 HDU 1164 Eddy's research I
- 库函数API和C代码中嵌入汇编代码两种方式使用同一个系统调用
- java8 lambda表达式
- Java之美[从菜鸟到高手演变]之设计模式三