博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【转载】两个递增数列排序后求第n个数
阅读量:6936 次
发布时间:2019-06-27

本文共 1976 字,大约阅读时间需要 6 分钟。

题目:

已知数A和数B,且A>B

数列一:第一个数为1/(A+B),增量为2/(A+B),往下递增,即1/(A+B)、3/(A+B)、5/(A+B)……
数列二:第一个数为1/(A-B),增量为2/(A-B),往下递增,即1/(A-B)、3/(A-B)、5/(A-B)……
两个数列放到一起排序,求排序后的第n个数是多少?

答案 :

  没测试过  

1 using System;  2  3 namespace ConsoleApplication1  4 {
5 class Program 6 {
7 static void Main(string[] args) 8 {
9 Console.WriteLine("A=4 B=1"); 10 for(int i = 1;i < 20;i++) 11 Console.Write(Get(4, 1, i).ToString() + ""); 12 Console.WriteLine(); 13 Console.WriteLine("A=6 B=2"); 14 for(int i = 1;i < 20;i++) 15 Console.Write(Get(6, 2, i).ToString() + ""); 16 Console.WriteLine(); 17 } 18 static int Get(int A, int B, int N) 19 {
20 int a = A - B; 21 int b = A + B; 22 int t, w, q, p; 23 if(a > b) 24 {
25 t = a; 26 a = b; 27 b = t; 28 } 29 p = a; 30 q = b; 31 w = 1; 32 while(w < N) 33 {
34 if(p + a * 2 < q) 35 {
36 p += a * 2; 37 w++; 38 } 39 else if(p == q) 40 {
41 p += a * 2; 42 q += b * 2; 43 w++; 44 } 45 else 46 {
47 p += a * 2; 48 q += b * 2; 49 w += 2; 50 } 51 } 52 if(w == N) 53 return (p); 54 else 55 return (q - b * 2); 56 } 57 } 58 } 59 /* 60 A=4 B=1 61 3 5 9 15 15 21 25 27 33 35 39 45 45 51 55 57 63 65 69 62 A=6 B=2 63 4 8 12 20 24 28 36 40 44 52 56 60 68 72 76 84 88 92 100 64 */

转载于:https://www.cnblogs.com/Relict/articles/2252379.html

你可能感兴趣的文章
zoom.js:一款效果很独特的页面内容缩放插件
查看>>
GateWay程序分析01_主程序分析
查看>>
POJ 1328
查看>>
程序应用程序PureMvc学习(一)
查看>>
获取元素offset的方法
查看>>
Javascript综合应用小案例
查看>>
想统计指定用户每天通过EXCHANGE发送了多少封邮件么?
查看>>
PostgreSQL中,如何查询表所对应的文件名
查看>>
循环、迭代、遍历和递归
查看>>
chrome操作技巧
查看>>
cocos2d-x之qt port
查看>>
HDU-4568 Hunter 状态压缩
查看>>
使用MyEclipse开发第一个Web程序
查看>>
Windows 7上的DirectX 11.1
查看>>
屌丝程序员的那些事(二)-第一次面试
查看>>
JSP基础(二)JSP语法概述
查看>>
京东商城招聘自动调价系统架构师 T4级别
查看>>
浅C#中的装箱和拆箱
查看>>
JavaScript富应用MVC MVVM框架
查看>>
采用左右值编码来存储无限分级树形结构的数据库表设计
查看>>