CSU 1114 平方根大搜索

Time Limit: 5 Sec Memory Limit: 128 MB
Submit: 197 Solved: 109

Description

在二进制中,2的算术平方根,即sqrt(2),是一个无限小数1.0110101000001001111…

给定一个整数n和一个01串S,你的任务是在sqrt(n)的小数部分(即小数点之后的部分)中找到S第一次出现的位置。如果sqrt(n)是整数,小数部分看作是无限多个0组成的序列。

Input

输入第一行为数据组数T (T<=20)。以下每行为一组数据,仅包含一个整数n (2<=n<=1,000,000)和一个长度不超过20的非空01串S。

Output

对于每组数据,输出S的第一次出现中,第一个字符的位置。小数点后的第一个数字的位置为0。输入保证答案不超过100。

Sample Input

2
2 101
1202 110011

Sample Output

2
58

import java.math.BigDecimal;
import java.math.MathContext;
import java.util.Scanner;/*** Created by switch on 16/8/16.*/
public class Main {public static void main(String[] args) {Scanner input = new Scanner(System.in);int T = input.nextInt();for (int i = 0; i < T; i++) {String str = input.next();String pattern = input.next();BigDecimal b1 = new BigDecimal(str);BigDecimal b2 = new BigDecimal("0");BigDecimal middle = b1.add(b2).divide(new BigDecimal("2"));for (int j = 0; j < 20; j++) {BigDecimal tmp1 = b1.divide(middle, 100, BigDecimal.ROUND_HALF_DOWN).subtract(middle);BigDecimal tmp2 = tmp1.divide(new BigDecimal("2"), 100, BigDecimal.ROUND_HALF_DOWN);middle = middle.add(tmp2);}middle = middle.remainder(new BigDecimal("10"), MathContext.DECIMAL128);while (middle.compareTo(BigDecimal.ONE) == 1) {middle = middle.subtract(new BigDecimal("1"));}StringBuilder sbuilder = new StringBuilder();while (true) {middle = middle.multiply(new BigDecimal("2"));if (middle.compareTo(BigDecimal.ONE) >= 0) {sbuilder.append("1");middle = middle.subtract(new BigDecimal("1"));} else {sbuilder.append("0");}if (sbuilder.length() >= 100) {break;}}System.out.println(sbuilder.toString().indexOf(pattern));}}
}

CSU 1114 平方根大搜索相关推荐

  1. 湖南省第八届大学生程序设计大赛原题 D - 平方根大搜索 UVA 12505 - Searching in sqrt(n)...

    http://acm.hust.edu.cn/vjudge/contest/view.action?cid=30746#problem/D D - 平方根大搜索 UVA12505 - Searchin ...

  2. ncbi查找目的基因序列_NCBI大搜索之目的基因寻踪

    NCBI大搜索之目的基因寻踪 最近经常碰到查找目的基因的问题,那今天就讲一下如何利用NCBI数据库查找目的基因! NCBI(National Center For Biotechnology Info ...

  3. 大搜索时代下的网络拓扑搜索定位

    互联网的大搜索时代 中国互联网十多年的发展历史中,搜索真正启蒙的时间也就最近一两年.搜索从雅虎时代到google时代的更替仅仅花了几年的时间,业界有这样的评价,雅虎搜索的没落是因为其处于搜索与门户交替 ...

  4. 微信搜一搜未来可期,下半场有大动作,要做大搜索!

    前段时间微信上线的8.0版本大家都用了吧~表情特效上了微博热搜.据说微信接下来又会有大动作,有人在微信 2021 公开课中了解到一个信息:微信搜一搜未来可期. 文章来源于几何小姐姐 ,作者婷婷的勇敢世 ...

  5. 搜索下半场:微信要做大搜索吗?

    作者:婷婷的勇敢世界 微信搜一搜团队 Samuel 在微信公开课中提及搜一搜的使用场景:"用微信就能搜".微信搜一搜希望用户有任何问题和困难的时候,都会想到用微信来搜. 此外,微信 ...

  6. 国家自然科学基金委发布《网络空间大搜索技术白皮书》

    终于拿到了<网络空间大搜索技术白皮书>的纸书和电子版.这份<白皮书>在国家自然科学基金委的指导下,多位院士主持参与,由北京邮电大学.国防科技大学.复旦大学.中科院计算所.中国电 ...

  7. 十万美元的悬赏——互联网梅森素数大搜索

    一.价值五万美元的素数 2000年4月6日,住在美国密歇根州普利茅茨的那扬·哈吉拉特瓦拉(Nayan Hajratwala)先生得到了一笔五万美元的数学奖金,因为他找到了迄今为止已知的最大素数,这是一 ...

  8. 从远古时代的黄页到大搜索时代的神灯——搜索引擎一路走来

    愚人节的时候,被朋友圈里转发的"百度神灯"炫得脑洞大开--原来搜索引擎可以做成这样子.后来虽然知道它是百度送给大家的"愚人节礼物",但是,我想百度所要表达的一定 ...

  9. 【社招/实习】百度大搜索招聘NLP、搜索方向算法工程师!

    星标/置顶小屋,带你解锁 最萌最前沿的NLP.搜索与推荐技术 工作职责 负责百度搜索中的语义理解及相关性计算.LTR排序逻辑.query分析理解.召回匹配等相关算法创新及优化工作: 关注传统机器学习与 ...

最新文章

  1. webstorm命令行提示‘node‘ 或‘npm‘不是内部或外部命令,也不是可运行的程序
  2. java并行安全吗_并发和并行有什么区别
  3. Windows软件授权管理工具 slmgr命令详解
  4. MySQL 错误 #1113
  5. Codeforces Round #131(Div. 2)
  6. springcloud——eureka小错误Caused by: java.net.UnknownHostException: eureka7003.com
  7. Java中abstract与interface
  8. 宽量程电压电流 stm32_电压、电阻知识点汇总
  9. python简单的小程序_Python简单小程序---名片简易系统
  10. Leetcode836.Rectangle Overlap矩阵重叠
  11. 《第一行代码》学习笔记37-服务Service(4)
  12. Docker 容器的运行(八)
  13. 最佳实践 —— 单元测试
  14. java游戏妖魔兽_妖1.17正式版下载
  15. [JavaScript 刷题] 树 - 将有序数组转换为二叉搜索树, leetcode 108
  16. 1987年,国际C语言混乱代码大赛
  17. 程序员必知的8个Java开源IDE工具!你最钟意哪个?
  18. 傅里叶变换经滤波处理及傅里叶逆变换
  19. 用于理解C++类中静态成员的单子模式研究
  20. English--名词从句

热门文章

  1. IntelliJ IDEA Community社区版集成Tomcat or Jetty教程
  2. linux5 vnc,CentOS 5 下安装配置VNC
  3. layuimini 图标颜色便捷指定
  4. C#LeetCode刷题之#447-回旋镖的数量(Number of Boomerangs)
  5. C#设计模式之19-观察者模式
  6. 我的布尔玛CSS框架之旅
  7. 客户端渲染换为服务器端渲染_客户端与服务器端渲染:为什么不是全部都是黑白的
  8. 深度学习去燥学习编码_请学习编码
  9. python如何操作excel 基础代码
  10. 12个很棒的Pandas和NumPy函数,让python数据分析事半功倍