文档章节

编程找规律3

zengxiangwei
 zengxiangwei
发布于 2013/10/22 20:51
字数 555
阅读 61
收藏 0
点赞 0
评论 0
/****************************************************************** 

一个数列的前 6 项为:1/2,3/5,4/7,6/10,8/13,9/15等,试求数列 

的第 n (n<2000) 项。 

分析:经过观察发现分母有如下性质,等于分子加上该元素在序列中的顺序标 

号,如第2项,3/5  5 = 3+2  ,第三项 4/7  7 = 4+3; 

那么分子有什么性质呢,经比较观察得到,分子是,前面序列中(包括分子和 

分母)未出现的最小整数,仔细观察还发现,所有的分子是递增的,分母也是 

递增的,这样就可以通过递推的方式从前往后依次推出所有的元素。这里有 

一个小技巧,在查找分子是,由序列性质可知,后项分子大于前项分子,这样 

就可以缩小查找,为了便于查找,将所有的项的分子分母挨着存放在数组中, 

如 a[0] = 1,第一项分子;a[2] = 2,第一项分母; 

*******************************************************************/ 

  

/*******************************************************************************
Copyright (c)哈尔滨工程大学  曾相未  保留所有权利。



文件名: Test_6_2.java 

描述: 问题求解找规律3
作者: 曾相未
时间:2013/10/21

*******************************************************************************/


import java.util.Scanner; 

class Test_6_2{ 

         //依次向后推出需要的项 

         void fullNumberArray(int a[], int n){ 

                   a[0] = 1; 

                   a[1] = 2;//第一项 

                   int t; 

                   //从第二项依次向后递推 

                   for(int i = 2;i < 2 * n;i = i + 2) 

                   { 

                            //先求出分子 

                            t = a[i -2] + 1;//比前项分子大 

                            //依次向前在分母中找,看有没有与t相同的数; 

                            int j = i -1; 

                            while(true) 

                            { 

                                     if(t > a[j])  break;//所有前项分母中没有t,找到分子,退出 

                                     //前项分母中含有t,t加1,继续在前项分母中找t 

                                     if(t == a[j])  {t ++;j = i - 1;} 

                                     else j = j - 2;//继续往前找 

                            } 

                            a[i] = t;//分子 

                            a[i+1] = a[i] + i/2 + 1;//分母 

                   } 

         }    

         

         public static void main(String []args){ 

                   Test_6_2 test = new Test_6_2(); 

                   Scanner sc = new Scanner(System.in); 

                   System.out.println("Please input n:"); 

                   int n = sc.nextInt(); 

                   int [] a = new int [2 * n + 10];//用于存放序列,分子分母依次存放 

                   test.fullNumberArray(a,n); 

                   //输出要求的序列 

                   for(int i = 0; i < 2 * n;i = i + 2) 

                            { 

                                     System.out.print(a[i] + "/"  + a[i+1] + " "); 

                                     if((i + 2) % 20 == 0)  System.out.println();//每行打印10项 

                            } 

         } 

}

© 著作权归作者所有

共有 人打赏支持
zengxiangwei
粉丝 8
博文 12
码字总数 18050
作品 0
郑州
程序员
C算法编程题(五)“E”的变换

程序描述   给定7×7二维数组矩阵,元素由“0”或“1”组成,并且根据元素值屏幕显示“E”字形图案,其中“0”显示空格,“1”显示“@”。 如矩阵 0 1 1 1 1 1 0 0 1 0 0 0 0 0 0 1 0 0 0 ...

范大脚脚 ⋅ 2017/11/07 ⋅ 0

[LeetCode] Rotate Function 旋转函数

Given an array of integers and let n to be its length. Assume to be an array obtained by rotating the array k positions clock-wise, we define a "rotation function" on as follow:......

机器的心脏 ⋅ 2017/12/12 ⋅ 0

程序员抢了数学家的饭碗

【威哥说】没有接触过程序的同学,感觉代码距离我们很好遥远,可是你真正的学会了编程之后,你才知道,其实程序可是实现所有的事物。本篇文章就是波波老师针对一个学生的提问,单纯的使用循环...

磨砺营 ⋅ 2016/10/12 ⋅ 0

自我阅读的一些体会

激励: 1.但是我想告诉你的是,我并不是因为别人优秀,自己很low就让自己low下去,我只是想努力一点点,进步就多一点点。 释怀: 1.人生其实就像马拉松一样,一辈子很长,你不要在乎一时一刻...

Iam光星人 ⋅ 2017/02/04 ⋅ 0

编程中的“末行效应”

我研究过数百个因“拷贝-粘贴”导致的错误。可以肯定的是,程序员常常会在一大段代码的最后一段里犯错。好像还没有任何编程书讨论过这种现象,因此我决定自己写点什么。我称之为“末行效应”...

oschina ⋅ 2014/11/18 ⋅ 24

ROSALIND Bioinformatics(11-15)

刷题ROSALIND,练编程水平 http://rosalind.info/problems/list-view/ 11. Mortal Fibonacci Rabbits (斐波那奇兔子有毒) image.png 解题思路 假设每对兔子在成年阶段每个月能产生1对幼年兔子...

thinkando ⋅ 2017/11/14 ⋅ 0

51nod 1995 三子棋

1995 三子棋 难度:基础题 收藏 关注 小的时候大家一定玩过“井”字棋吧。也就是在九宫格中,只要任意行、列,或者任意连续对角线上面出现三个相同的,就能获胜。现在小明和小花也在玩三子棋...

Fire_to_cheat_ ⋅ 2017/12/27 ⋅ 0

如何快速上手使用Python进行金融数据分析

【量化小讲堂- Python、pandas技巧系列】 如何快速上手使用Python进行金融数据分析 根据之前几篇系列帖子以及交流QQ群(461470781)中的反馈,让我觉的很有必要写一篇如何快速上手使用Pyhton进...

小克898 ⋅ 2015/12/01 ⋅ 0

《从零开始学Swift》学习笔记(Day 70)——Swift与Objective-C混合编程之

《从零开始学Swift》学习笔记(Day 70)——Swift与Objective-C混合编程之Swift与Objective-CAPI映射 原创文章,欢迎转载。转载请注明:关东升的博客 Swift与Objective-C API映射 在混合编程...

智捷课堂 ⋅ 2016/02/26 ⋅ 0

php-关于切换目录查找文件

3种目录下文件形式:目录1/1.txt ,目录1/项目1-1/1.txt,目录1/项目1-1/项目1-1-1/1.txt (目录名并不是一样的,而且没有规律) 根据关键字, 在1.txt里面查找。 我原来实现方法:先在目录1/1...

ahkxhyl ⋅ 2015/11/17 ⋅ 4

没有更多内容

加载失败,请刷新页面

加载更多

下一页

容器之重命名镜像

使用docker tag命令来重命名镜像名称,先执行help,查看如何使用如下 mjduan@mjduandeMacBook-Pro:~/Docker % docker tag --helpUsage:docker tag SOURCE_IMAGE[:TAG] TARGET_IMAGE[:TA...

汉斯-冯-拉特 ⋅ 2分钟前 ⋅ 0

with 的高级用法

那么 上下文管理器 又是什么呢? 上下文管理器协议包含 __enter__ 和 __exit__ 两个方法。with 语句开始运行时,会在上下文管理器对象上调用 __enter__ 方法。with 语句运行结束后,会在上下...

阿豪boy ⋅ 22分钟前 ⋅ 0

使用 jsoup 模拟登录 urp 教务系统

需要的 jsoup 相关 jar包:https://www.lanzous.com/i1abckj 1、首先打开教务系统的登录页面,F12 开启浏览器调试,注意一下 Request Headers 一栏的 Cookie 选项,我们一会需要拿这个 Cook...

大灰狼时间 ⋅ 22分钟前 ⋅ 0

关于线程的创建

转自自己的笔记: http://note.youdao.com/noteshare?id=87584d4874acdeaf4aa027bdc9cb7324&sub=B49E8956E145476191C3FD1E4AB40DFA 1.创建线程的方法 Java使用Thread类代表线程,所有的线程对......

MarinJ_Shao ⋅ 33分钟前 ⋅ 0

工厂模式学习

1. 参考资料 工厂模式-伯乐在线 三种工厂-思否 深入理解工厂模式 2. 知识点理解 2.1 java三种工厂 简单工厂 工厂模式 抽象工厂 2.2 异同点 逐级复杂 简单工厂通过构造时传入的标识来生产产品...

liuyan_lc ⋅ 45分钟前 ⋅ 0

Java NIO

1.目录 Java IO的历史 Java NIO之Channel Java NIO之Buffer Java NIO之Selector Java NIO之文件处理 Java NIO之Charset Java 可扩展IO 2.简介 “IO的历史”讲述了Java IO API从开始到现在的发...

士别三日 ⋅ 49分钟前 ⋅ 0

[Err] ORA-24344: success with compilation error

从txt文本复制出创建function的脚本,直接执行,然后报错:[Err] ORA-24344: success with compilation error。 突然发现脚本的关键字,居然不是高亮显示。 然后我把脚本前面的空格去掉,执行...

wenzhizhon ⋅ 59分钟前 ⋅ 0

Spring Security授权过程

前言 本文是接上一章Spring Security认证过程进一步分析Spring Security用户名密码登录授权是如何实现得; 类图 调试过程 使用debug方式启动https://github.com/longfeizheng/logback该项目,...

hutaishi ⋅ 今天 ⋅ 0

HAProxy基于KeepAlived实现Web高可用及动静分离

前言 软件负载均衡一般通过两种方式来实现: 基于操作系统的软负载实现 基于第三方应用的软负载实现 LVS是基于Linux操作系统实现的一种软负载,而HAProxy则是基于第三方应用实现的软负载。 ...

寰宇01 ⋅ 今天 ⋅ 0

微软自研处理器的小动作:已经开始移植其他平台的工具链

微软将 Windows 10 、Linux 以及工具链如 C/C++ 和 .NET Core 运行时库、Visual C++ 2017 命令行工具、RyuJIT 编辑器等移植到其自主研发的处理器架构 E2。微软还移植了广泛使用的 LLVM C/C++...

linux-tao ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部