蓝桥杯:矩阵翻硬币

题目地址:http://lx.lanqiao.org/problem.page?gpid=T126

这道题强烈建议用java做,毕竟自带BigInteger类。

此题看似是一道模拟题,但由于数据规模很大(10的1000次方),只能找规律。规律是最终结果为sqrt(n)*sqrt(m),然后此题就成了大数开根的题。

做法是先对数字的长度进行判断,如果被开根的数是偶数位的(例如4365,4位),开根后就为其原位数的一半(66,2位)。如果其位数是奇数位的(例如121,3位),开根后其位数就是原位数的二分之一向下区整再加一(11,3/2+1=2位)。

确定了位数之后就对其进行由高位至低位,由小到大的遍历。

以4356为例,先确定答案是两位的,初始化为00,从十位开始1-9的遍历,到70的时候该数的平方为4900>4356,从而确定十位是7-1=6。个位同理。

本程序有多次char[], String, BigIntger之间的转化,要正确转化。

 1 import java.math.BigInteger;
 2 import java.util.Arrays;
 3 import java.util.Scanner;
 4 
 5 public class Main {
 6 
 7     public static void main(String[] args) {
 8         // TODO Auto-generated method stub
 9            Scanner cin = new Scanner(System.in); 
10            String s1 = cin.next();
11            String s2 = cin.next();
12            BigInteger ans1 = BigSqrt(s1);
13            BigInteger ans2 = BigSqrt(s2);
14            //System.out.println(ans1+" "+ans2);
15            BigInteger ans = ans1.multiply(ans2);
16            System.out.println(ans);
17     }
18 
19     private static BigInteger BigSqrt(String s) {        
20         int mlen = s.length();    //被开方数的长度
21         int len;    //开方后的长度
22         BigInteger beSqrtNum = new BigInteger(s);//被开方数
23         BigInteger sqrtOfNum;    //存储开方后的数
24         BigInteger sqrtOfNumMul;    //开方数的平方
25         String sString;//存储sArray转化后的字符串
26         if(mlen%2 == 0)    len = mlen/2;
27         else    len = mlen/2+1;
28         char[] sArray = new char[len];
29         Arrays.fill(sArray, '0');//开方数初始化为0
30         for(int pos=0; pos<len; pos++){
31             //从最高开始遍历数组,每一位都转化为开方数平方后刚好不大于被开方数的程度
32             for(char num='1'; num<='9'; num++){
33                 sArray[pos] = num;
34                 sString = String.valueOf(sArray);
35                 sqrtOfNum = new BigInteger(sString);
36                 sqrtOfNumMul = sqrtOfNum.multiply(sqrtOfNum);
37                 if(sqrtOfNumMul.compareTo(beSqrtNum) == 1){
38                     sArray[pos]-=1;
39                     break;    
40                 }    
41             }
42         }
43         return new BigInteger(String.valueOf(sArray));
44     }
45 }

 

转载于:https://www.cnblogs.com/mycd/p/5414127.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/257341.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ssh服务端口转发详解

端口转发的概念和应用什么是端口转发呢&#xff0c;我们知道&#xff0c;SSH 会自动加密和解密所有 SSH 客户端与服务端之间的网络数据。但是&#xff0c;SSH 还同时提供了一个非常有用的功能&#xff0c;这就是端口转发。它能够将其他 TCP 端口的网络数据通过 SSH 链接来转发&…

W ndoWs文件夹窗口,如何在本地网络中访问-Synology-NAS-上的文件-(Wndows).pdf

如何在本地网络中访问-Synology-NAS-上的文件-(Wndows)如何在本地网络中访问 Synology NAS 上的文件 (Windows)概述Synology NAS 经过专门设计&#xff0c;可快速简单地在本地网络中存储和共享文件&#xff0c;让您直接访问 SynologyNAS 上的文件而没有每次登录 DSM 的麻烦。例…

左移与右移

左移 无论被移动的数是有符号还是无符号&#xff0c;左移一位相当于乘2(在不溢出的情形下) 右移 对于无符号数&#xff0c;右移一位相当于除以2&#xff1b; 对于有符号数&#xff0c;如果还想获得同样右移除以2的效果&#xff0c;就要考虑算数右移&#xff0c;即符号位始终不变…

Serializing Lua objects into Lua Code

The following little snippet allows you to ‘pickle’ Lua objects directly into Lua code (with the exception of functions, which are serialized as raw bytecode). Metatable support is on the way, but for now, it should be useful enough. Example code: view s…

布局管理器android,Android课程---布局管理器之相对布局(一)

下面示例的是在父容器里如何设置按钮的位置&#xff0c;难度&#xff1a;***&#xff0c;重点是找到一个主按钮&#xff0c;设置它的id&#xff0c;然后根据它来设置其他按钮在父容器的位置。代码示例&#xff1a;android:layout_width"match_parent"android:layout_…

【Cocos2d-Js基础教学 入门目录】

本教程视地址频在&#xff1a;九秒课堂 完全免费从接触Cocos2dx-Js以来&#xff0c;它的绽放的绚丽让我无法不对它喜欢。我觉得Js在不断带给我们惊喜&#xff1b;在开发过程中&#xff0c;会大大提升我们对原型开发的利用率&#xff0c;使用Js语言做游戏开发&#xff0c;使游戏…

Hammer.js移动端触屏框架的使用

hammer.js是一个多点触摸手势库&#xff0c;能够为网页加入Tap、Double Tap、Swipe、Hold、Pinch、Drag等多点触摸事件&#xff0c;免去自己监听底层touchstart、touchmove、touchend事件并且写一大堆判断逻辑的痛苦。hammer.js不但支持触摸屏设备的浏览器&#xff0c;在桌面浏…

Android实现笔记本修改功能,安卓12第二个开发者预览版推出:UI、功能有所改进...

最近谷歌正式推出了Android 12的第二个开发者预览版&#xff0c;带来了很多UI和功能上的改进。首先最明显的变化应该是锁屏界面和下拉通知栏的音乐播放器。此前这部分UI的配色一直采用的是音乐专辑的主色调&#xff0c;但在Android 12上&#xff0c;这个配色变成了系统的强调色…

Delphi编译报错对照表

; not allowed before ‘ELSE’ → ElSE前不允许有“;” ” clause not allowed in OLE automation section → 在OLE自动区段不允许“”子句 ” is not a type identifier → 不是类型标识符 ” not previously declared as a PROPERTY → 前面没有说明PROPERTY ‘GOTO ‘ lea…

C语言中Union类型的使用方法

转自&#xff1a;http://blog.csdn.net/feimor/article/details/6858103 使用C语言时&#xff0c;常常使用struct&#xff0c;对于union类型却几乎没有用过&#xff0c;只知道它是联合类型&#xff0c;各字段共享一块内存&#xff0c;实际应用中却不知道它的具体用途。 今天读《…

android 点对点语音,使用Android SIP Stack进行点对点SIP呼叫?

我一直被困在同样的问题上.如果你可以在没有android sip api的情况下制作它,你可以查看rtp api,它为你提供了一些较低级别的工具来制作P2P VOIP应用程序,而无需服务器.To support audio conferencing and similar usages, you need toinstantiate two classes as endpoints for…

拓扑排序

用两种方式来实现 1、 深度优先搜索&#xff08;DFS&#xff09; 对有向图采取深度优先搜索&#xff0c;并且在postVist处&#xff0c;打印所访问的节点。最后打印出的字符序列的反序列正好满足拓扑排序。&#xff08;可以在postVist&#xff08;&#xff09;方法中&#xff0c…

阿里启动NASA计划创造新经济核心科技

本文讲的是阿里启动"NASA"计划创造新经济核心科技【IT168 资讯】2017年3月9日&#xff0c;阿里巴巴集团在杭州召开首届技术大会&#xff0c;动员全球两万多名科学家和工程师投身“新技术战略”。会议透露&#xff0c;阿里巴巴正在启动一项代号“NASA”的计划&#xf…

ORACLE创建表空间和用户

--表空间 CREATE TABLESPACE sdt DATAFILE F:\tablespace\demo size 800M EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO; --索引表空间 CREATE TABLESPACE sdt_Index DATAFILE F:\tablespace\demo size 512M EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AU…

PHP-CGI, FastCGI, PHP-FPM的关系和区别

Web server(apache, nginx) 接受到一个php请求后要解析php文件, 怎么解析呢, web server是C语言写的, 所以需要一个协议, 一个php解释器, 也就是CGI. FastCGI是用来提高CGI性能的, 可以说是CGI的升级版. CGI每当一个请求过来都要开启一个进程, 访问结束再关闭一个进程, 太累. F…

android 6关闭防火墙,安卓手机如何关闭防火墙

我的安卓手机不想使用防火墙了!该如何关闭呢?下面由小编给你做出详细的安卓手机关闭防火墙介绍!希望对你有帮助!安卓手机关闭防火墙方法一1、如果该防火墙不是系统自带的&#xff0c;是你下载安装的&#xff0c;就直接在设置选项中&#xff0c;选择应用程序--管理应用程序&…

Powershell命令中的 CommonParameters是指什么

因为在命令中经常遇到这个参数&#xff0c;后来找了一下&#xff0c;有一个微软的官方文档&#xff0c;就不翻译了&#xff0c;英文好的自己读吧。https://docs.microsoft.com/zh-cn/powershell/module/microsoft.powershell.core/about/about_commonparameters?viewpowershel…

java日志之slf4j与logback简单使用

最近在开发遇到日志是使用slf4j与logback.xml的配置&#xff0c;所以就记录下来了。 1、导入这几个jar包&#xff1a; Logback 分为三个模块&#xff1a;logback-core&#xff0c;logback-classic&#xff0c;logback-access logback-core 是核心&#xff1b; logback-classic …

android one x3怎么样,618旗舰手机怎么选,看完这篇文章,你就会知道

转眼间&#xff0c;2021年即将过半&#xff0c;一年一度的年中购物狂欢节618就要到来了。我已经迫不及待了。毕竟在618年中大促的时候&#xff0c;各家厂商都有力度非常大的活动。而且也有很多小伙伴一直在观望&#xff0c;想要在618的时候给自己换一款手机。说实话&#xff0c…

字符设备驱动程序框架

via&#xff1a;http://blog.chinaunix.net/uid-20672257-id-3142809.html 1、写出open、write函数 2、告诉内核 1&#xff09;、定义一个struct file_operations结构并填充好 static struct file_operations first_drv_fops {.owner THIS_MODULE, /* 这是一个宏&…