博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
hdu 1316 How Many Fibs? (模拟高精度)
阅读量:6423 次
发布时间:2019-06-23

本文共 1153 字,大约阅读时间需要 3 分钟。

题目大意:

问[s,e]之间有多少个 斐波那契数。

思路分析:

直接模拟高精度字符串的加法和大小的比較。

注意wa点再 s 能够从 0 開始

那么要在推断输入结束的时候注意一下。

#include 
#include
#include
#include
using namespace std;struct node{ char str[111]; int len; void print() { for(int i=len-1; i>=0; i--) { printf("%c",str[i]); } puts(""); }} fib[1500];node operator + (const node &a,const node &b){ node c; for(int i=0; i<=110; i++)c.str[i]='0'; for(int i=0; i
=10) { dig-=10; s++; } c.str[i]=dig+'0'; if(s)c.str[i+1]='1'; } for(c.len=110; c.str[c.len]=='0' ; c.len--); c.len++; return c;}bool operator <= (node &a,node &b){ if(a.len!=b.len)return a.len
=0; i--) { if(a.str[i]>b.str[i]) return false; else if(a.str[i]
=0 && !is; i--) { if(a.str[i]>b.str[i]) return false; else if(a.str[i]
101)break; } node s,e; while(scanf("%s%s",s.str,e.str)!=EOF) { if(s.str[0]=='0' && e.str[0]=='0')break; s.len=strlen(s.str); e.len=strlen(e.str); reverse(s.str,s.str+s.len); reverse(e.str,e.str+e.len); int i=1,st,ed; while(fib[i]

转载地址:http://jirra.baihongyu.com/

你可能感兴趣的文章
C语言学习之指针详解
查看>>
学习使用Bing Maps Silverlight Control(一):准备和新建
查看>>
讲一讲什么叫阻塞非阻塞同步异步
查看>>
选择器补遗
查看>>
C# 实体集合和实体转换成相应的string、XDocument、XElement、XDocument
查看>>
轻松记住大端小端的含义(附对大端和小端的解释)
查看>>
dreamweaver中的 map怎么调用?_制作热点图像区域
查看>>
代码19
查看>>
Win10系列:UWP界面布局进阶5
查看>>
ABP Zero 本地化语言的初始化和扩展
查看>>
转Hibernate 一对多关联的CRUD__@ManyToOne(cascade=(CascadeType.ALL))
查看>>
FCT需求分析
查看>>
开门人和关门人(杭电1234)
查看>>
万能adapter
查看>>
开发指南专题六:JEECG微云高速开发平台代码生成
查看>>
cocos2d-x 游戏优化方案
查看>>
1.3 Quick Start中 Step 6: Setting up a multi-broker cluster官网剖析(博主推荐)
查看>>
remote desktop connection manager
查看>>
开源库RxJava、ButterKnife
查看>>
JDK内置工具jstack(Java Stack Trace)(转)
查看>>