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. Leetcode476.Number Complement数字的补数

    给定一个正整数,输出它的补数.补数是对该数的二进制表示取反. 注意: 给定的整数保证在32位带符号整数的范围内. 你可以假定二进制数不包含前导零位. 示例 1: 输入: 5 输出: 2 解释: 5的二 ...

  2. 几个树形dp

    1.重建道路 树形dp基础题,f[i][j]表示在i这个点我和我的子树联通块大小为j最少砍几条边. 转移的时候,到下一个子树时上一个子树所有答案先++(此树直接砍掉不贡献答案),再继续dp. 注意更新 ...

  3. Yii 网站上线不需手动配置

    参考: http://www.cnblogs.com/x3d/p/php_auto_prepend_file.html

  4. Nginx 函数解析之ngx_http_get_forwarded_addr_internal

    static ngx_int_t ngx_http_get_forwarded_addr_internal(ngx_http_request_t *r, ngx_addr_t *addr, u_cha ...

  5. 强强联合 阿里云 RDS for SQL Server 与 金蝶 K/3 WISE 产品实现兼容适配

    强强联合 阿里云 RDS for SQL Server 与 金蝶 K/3 WISE 产品实现兼容适配,原K/3 WISE用户通过简单配置就可以无缝搭配RDS SQL Server使用,不需再费时费力自 ...

  6. js实现翻转一个字符串

    字符串作在程序中是非常常见的,因为程序中绝大部分的数据都可以当作字符串来处理.在这里介绍几种翻转字符串的方法. (1)使用字符串函数 //使用数组翻转函数 function reverseString ...

  7. Devexpress 中控件及GridView控件的Cell增加右键复制功能

    a) GridView中任何一个Cell增加右键复制功能GridHitInfo gridHitInfo = new GridHitInfo(); //用户接收GridView中单元格数据void gr ...

  8. PrintStream 类

    5.PrintStream类(重点) (1)基本概念 java.io.PrintStream类用于打印各种数据内容.   (2)常用的方法 PrintStream(OutputStream out) ...

  9. jQuery 图片上传

    1. 概述 1.1 说明 在一些前后端不分离的项目中,经常有一些需要把文件或者图片上传的功能,故记录此代码以便后期使用. 1.2 要求 1.上传,10M以内,限bmp,jpg,png,jpeg等图片格 ...

  10. Vue动态加载异步组件

    背景: 目前我们项目都是按组件划分的,然后各个组件之间封装成产品.目前都是采用iframe直接嵌套页面.项目中我们还是会碰到一些通用的组件跟业务之间有通信,这种情况下iframe并不是最好的选择,if ...