藍橋杯:矩陣翻硬幣

題目地址: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.pswp.cn/news/257341.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/257341.shtml
英文地址,請注明出處:http://en.pswp.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, /* 這是一個宏&…