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【大数加法】的更多相关文章
- 51nod 1005 大数加法
#include<iostream> #include<string> using namespace std; #define MAXN 10001 },b[MAXN]={} ...
- c#大数加法
在C#中,我们经常需要表示整数.但是,c#的基本数据类型中,最大的long也只能表示-9,223,372,036,854,775,808 到 9,223,372,036,854,775,807之间的数 ...
- 玲珑杯1007-A 八进制大数加法(实现逻辑陷阱与题目套路)
题目连接:http://www.ifrog.cc/acm/problem/1056 DESCRIPTION Two octal number integers a, b are given, and ...
- Leetcode 67 Add Binary 大数加法+字符串处理
题意:两个二进制数相加,大数加法的变形 大数加法流程: 1.倒置两个大数,这一步能使所有大数对齐 2.逐位相加,同时进位 3.倒置两个大数的和作为输出 class Solution { public: ...
- HDU1002大数加法
大数加法 c++版: #include <map> #include <set> #include <stack> #include <queue> # ...
- java实现大数加法、乘法(BigDecimal)
之前写过用vector.string实现大数加法,现在用java的BigDecimal类,代码简单很多.但是在online-judge上,java的代码运行时间和内存大得多. java大数加法:求a+ ...
- vector、string实现大数加法乘法
理解 vector 是一个容器,是一个数据集,里边装了很多个元素.与数组最大的不同是 vector 可以动态增长. 用 vector 实现大数运算的关键是,以 string 的方式读入一个大数,然后将 ...
- 【大数加法】POJ-1503、NYOJ-103
1503:Integer Inquiry 总时间限制: 1000ms 内存限制: 65536kB 描述 One of the first users of BIT's new supercompu ...
- A + B Problem II 大数加法
题目描述: Input The first line of the input contains an integer T(1<=T<=20) which means the number ...
随机推荐
- layui -page 分页类
<?phpnamespace page; // +---------------------------------------------------------------------- / ...
- 【html、CSS、javascript-12】jquery-效果
一.jQuery 效果- 隐藏和显示 通过 jQuery,您可以使用 hide() 和 show() 方法来隐藏和显示 HTML 元素: $("#hide").click(func ...
- Sublime keymap 个性修改
[ // 保存全部 {"keys": ["ctrl+alt+s"], "command": "save_all"}, / ...
- vue下使用nginx刷新页面404
nginx 是一个代理的服务器.出现的问题:写好的页面通过nginx作为代理的服务器给别的同事看的时候发现了新写的页面打开就404,并且从其他页面跳转可以看到但是刷新页面就404.解决方法:在文件中的 ...
- vmware三种网络模式配置(转载)
虚拟机系统安装的是Linux系统 首先,在本机上查看所有网络配置连接,使用命令:ipconfig Microsoft Windows [版本 6.1.7600]版权所有 (c) 2009 Micros ...
- Eclipse luna安装SVN
Eclipse luna安装SVN 1.Subversive Plug in 的安装 打开Eclipse ,Help--->Install New Soft ----> 输入 “Luna ...
- zk运维注意事项
1 连接数容易占满 2 watches数 (应用上的比较多建议做个自动监控,告警)
- Centos无法连接无线网络解决办法
系统->管理->服务器设置->服务,将NetworkManager选项勾选,点击重启服务.然后就可以看到右上角已经有了网络连接.
- TYVJ2032 「Poetize9」升降梯上
P2032 「Poetize9」升降梯上 时间: 1000ms / 空间: 131072KiB / Java类名: Main 描述 开启了升降梯的动力之后,探险队员们进入了升降梯运行的那条竖直的隧道, ...
- centos搭建svn 服务器 并同步到web 目录(总结)
配置搭建步骤: Linux平台的SVN服务器的配置及搭建 从本地提交代码到svn代码库. 将代码库中代码同步到web目录: 1.在web目录中checkout版本库 进入/home/www目录下 ( ...