编程实践之类似斐波拉契的序列题
来源:互联网 发布:淘宝天天特价入口 编辑:程序博客网 时间:2024/06/07 17:40
Description
数列A满足An = An-1 + An-2 + An-3, n >= 3
编写程序,给定A0, A1 和 A2, 计算A99
Input
输入包含多行数据
每行数据包含3个整数A0, A1, A2 (0 <= A0, A1, A2 <= 32767)
数据以EOF结束
Output
对于输入的每一行输出A99的值
Sample Input
1 1 1
Sample Output
69087442470169316923566147
来自poj3982
我的代码:
import java.util.*;public class 序列 { public static void main(String[] args) { // TODO Auto-generated method stub Scanner sc=new Scanner(System.in); while(sc.hasNext()){ String D; int a=sc.nextInt(); int b=sc.nextInt(); int c=sc.nextInt();// int d=sc.nextInt(); String A=reverse(a+""); String B=reverse(b+""); String C=reverse(c+""); for(int i=0;i<97;i++){ D=C; C=sum(A,B,C); A=B; B=D;// for(int j=C.length()-1;j>=0;j--)// System.out.print(C.charAt(j));// System.out.print(" "); }// System.out.println("输出:"); for(int i=C.length()-1;i>=0;i--) System.out.print(C.charAt(i)); System.out.println(); } } static String sum(String A,String B,String C){ int i=0; int a,b,c; int sum=0; int j=0; int r=0; String s=""; while(i<A.length()||i<B.length()||i<C.length()){ if(i<A.length()){ a=A.charAt(i)-'0'; } else a=0; if(i<B.length()){ b=B.charAt(i)-'0'; } else b=0; if(i<C.length()){ c=C.charAt(i)-'0'; } else c=0; sum=a+b+c+j; r=sum%10; s=s+r+""; i++; j=sum/10; } if(j>0) s=s+j+""; return s; } static String reverse(String s){ char[] str=s.toCharArray(); Stack<Character> stack=new Stack<Character>(); for(int i=0;i<str.length;i++){ stack.push(str[i]); } String reversed=""; for(int i=0;i<str.length;i++){ reversed+=stack.pop(); } return reversed; }}
但是在效率上看来显然不如别人用C或C++的代码,有时间再优化一下。
0 0
- 编程实践之类似斐波拉契的序列题
- 编程之美3.3——类似——两个字符串的最长公共子序列(LCS)
- PHP核心技术与最佳实践之对象的序列化
- 【编程之法】1.3序列的打印
- MySQL实现类似Oracle的序列
- MySQL实现类似Oracle的序列
- MySQL实现类似Oracle的序列 - sequence
- MySQL实现类似Oracle的序列
- MySQL实现类似Oracle的序列
- 极限编程之实践
- 编程是类似的架构
- 编程的数学类似艺术
- Linux内核实践之序列文件
- Linux内核实践 之 ---- 序列文件
- 【July程序员编程艺术】之现场编写类似strstr/strcpy/strpbrk的函数
- J2ME编程最佳实践之灵活的RMS应用
- Java并发编程实践之线程的基本控制
- Java并发编程实践之Callable,Future,RutureTask的使用
- CSDN学霸课表——NoSQL是什么
- 自己写的简单计算器
- 【LeetCode】537. Complex Number Multiplication【M】
- 【书山有路】SQL必知必会 第5课
- 系统Back键再按一次退出程序
- 编程实践之类似斐波拉契的序列题
- 两两交换链表中的节点
- 20170403STL011_STL_算法和迭代器
- 初探Android热修复——tinker接入
- Autobahn websocket implementation
- Linux安装了mysql,访问不了mysql的问题解决办法
- 【LogBack.xml】logback.xml配置详情
- [Java]Servlet WEB-INF
- CS231n系列之Lecture 2: Image Classification pipeline