SGU111 Very simple problem
多少个平方数小于等于X,二分。
PS:java BigInteger。
import java.util.*; import java.math.*; public class Solution { public static void main(String args[]) { Scanner in = new Scanner(System.in); BigInteger X = in.nextBigInteger(); BigInteger L = BigInteger.valueOf(1); BigInteger R = BigInteger.valueOf(10).pow(500); while (L.compareTo(R) <= 0) { BigInteger M = L.add(R).divide(BigInteger.valueOf(2)); if (M.pow(2).compareTo(X) <= 0) { L = M.add(BigInteger.valueOf(1)); } else { R = M.subtract(BigInteger.valueOf(1)); } } System.out.println(R); } }
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步