UVa 495

求第n位斐波那契数列,n<=5000。

还是大数问题,这次是大数加法。仿照UVa 623的解法来做。623位数可以一位一位的增,但是这个需要预先给够位数,要是按六位存一个数组元素里面的话,300位足够了,粗算一下n=5000大概有1044位,len=300*6足够存下了。就是不知道最后输出答案时我让pos初始为len为什么会WA,这个初始化对结果有影响?

 #include<iostream>
#include<cstdio>
#define mod 1000000
using namespace std;
const int maxn = ;
const int len = ;
int f[maxn][maxn]; int main()
{
f[][] = , f[][] = ;
for (int i = ; i <= ; i++)
{
int c = ;
for (int j = ; j <= len; j++)
{
int t = f[i - ][j] + f[i - ][j]+c;
f[i][j] = t%mod;
c = t / mod;
}
}
int n;
while (scanf("%d",&n)==)
{
int pos = ;//从0开始,从len开始会WA,不太懂
for (int i = len; i >= ; i--) {
if (f[n][i] > ) {
pos = i; break;
}
}
printf("The Fibonacci number for %d is ", n);
printf("%d", f[n][pos]);
for (int i = pos - ; i >= ; i--)
printf("%06d", f[n][i]);
printf("\n");
}
return ;
}

Uva 495

好吧,用Python写就几行。。。

 fib=[,]
for i in range():
fib+=[fib[-]+fib[-]]
while True:
try:
n=int(input())
print("The Fibonacci number for {0} is {1}".format(n,fib[n]))
except:
break

UVa 495 Python

其实Java也不长。。。。

 import java.math.BigInteger;
import java.util.*;
class Main{
public static void main(String[] args){
Scanner in =new Scanner (System.in);
BigInteger ans[]=new BigInteger[];
ans[]=BigInteger.ZERO;
ans[]=BigInteger.ONE;
for(int i=;i<=;i++)
ans[i]=ans[i-].add(ans[i-]);
while(in.hasNext()){
int n=in.nextInt();
System.out.println("The Fibonacci number for "+ n +" is " + ans[n]);
}
}
}

UVa 495 Java

UVa 495【大数加法】的更多相关文章

  1. 51nod 1005 大数加法

    #include<iostream> #include<string> using namespace std; #define MAXN 10001 },b[MAXN]={} ...

  2. c#大数加法

    在C#中,我们经常需要表示整数.但是,c#的基本数据类型中,最大的long也只能表示-9,223,372,036,854,775,808 到 9,223,372,036,854,775,807之间的数 ...

  3. 玲珑杯1007-A 八进制大数加法(实现逻辑陷阱与题目套路)

    题目连接:http://www.ifrog.cc/acm/problem/1056 DESCRIPTION Two octal number integers a, b are given, and ...

  4. Leetcode 67 Add Binary 大数加法+字符串处理

    题意:两个二进制数相加,大数加法的变形 大数加法流程: 1.倒置两个大数,这一步能使所有大数对齐 2.逐位相加,同时进位 3.倒置两个大数的和作为输出 class Solution { public: ...

  5. HDU1002大数加法

    大数加法 c++版: #include <map> #include <set> #include <stack> #include <queue> # ...

  6. java实现大数加法、乘法(BigDecimal)

    之前写过用vector.string实现大数加法,现在用java的BigDecimal类,代码简单很多.但是在online-judge上,java的代码运行时间和内存大得多. java大数加法:求a+ ...

  7. vector、string实现大数加法乘法

    理解 vector 是一个容器,是一个数据集,里边装了很多个元素.与数组最大的不同是 vector 可以动态增长. 用 vector 实现大数运算的关键是,以 string 的方式读入一个大数,然后将 ...

  8. 【大数加法】POJ-1503、NYOJ-103

    1503:Integer Inquiry 总时间限制:  1000ms 内存限制:  65536kB 描述 One of the first users of BIT's new supercompu ...

  9. A + B Problem II 大数加法

    题目描述: Input The first line of the input contains an integer T(1<=T<=20) which means the number ...

随机推荐

  1. 删除n天前的文件或文件夹 bat批处理

    @echo off @echo deleting... FORFILES /p "D:\a" /D -1 /C "cmd /c echo deleting @file . ...

  2. js构造函数+原型

    注:普通对象与函数对象 var o1 = {}; var o2 =new Object(); var o3 = new f1(); function f1(){}; var f2 = function ...

  3. Spring_boot_pom.xml和启动方式

    spring-boot-starter-parent  整合第三方常用框架信息(各种依赖信息) spring-boot-starter-web   是Springboot整合SpringMvc Web ...

  4. WPF 利用HwndSource拦截Windows消息

    WPF提供了一个HwndSource可以使你更快的实现处理Windows消息. 通过HwndSource.FromHwnd得到的HwndSource可以添加(AddHook)移除(Remove)Hoo ...

  5. JQ效果 透明图片覆盖动画

    效果图呈上 先说思路 1,一个固定的框架,有两张图片,一张是狗狗的,一张是练习方式,想把做好的练习方式隐藏 2,效果上想要从下面滑动出来,所以透明框定位在下面 3,整理需要的东西,缓慢升起需要动画效果 ...

  6. eclipse2018整合tomcat9

    eclipse2018整合tomcat9 选择 Windows --> preferences --> server --> runtime environmen:点击“add”按钮 ...

  7. 禁用/移除WordPress页面的评论功能

    对于某些类型的WordPress站点,也许不需要在页面(page)提供评论功能,那么你可以通过下面的方法,很容易就禁用或移除WordPress页面的评论功能. 方法1:在页面编辑界面取消该页面的评论功 ...

  8. 『StabilityGuide』| 10+位阿里技术专家共同发起稳定性知识库开源项目

    我们穿过山和大海,也见过人山人海.我们见过各类故障,也排过千雷万险.这一次,不如我们一起,开启稳定性的探索之旅.让无法解决的问题少一点点,让世界的确定性多一点点. 无论是前端业务的开发者,还是后端架构 ...

  9. JavaScript文件与HTML文件本地连接

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  10. 磁力搜索嗅探器装成BT

    磁力搜索嗅探器装成BT ague-dht ague-dht 是一个磁力链接嗅探器,它伪装成BT下载客服端,加入DHT网络,嗅探磁力链接.每秒发送1000条请求时,平均3秒收到1次带有infohash的 ...