当前位置: 首页 > news >正文

国10平方拆分、数正方形

一、平方拆分 

import java.util.Scanner;public class Main {public static int num=0; // 全局计数器,记录拆分方法数// 深度优先搜索函数// x: 剩余需要拆分的数值// y: 当前允许使用的最小平方数的底数(确保不重复使用平方数)public static void dfs(int x, int y) {if(x < 0) { // 如果剩余数值小于0,说明当前组合不合法return;}else if(x == 0) { // 如果剩余数值等于0,说明找到了一个有效组合num++; // 计数器加1return;}// 尝试使用从y到44的每个平方数for(int i = y; i <= 44; i++) {dfs(x - i*i, i + 1); // 递归搜索,剩余数值减少i²,下一层最小底数为i+1}}public static void main(String[] args) {dfs(2019, 1); // 从数值2019开始搜索,初始最小底数为1System.out.println(num);}
}

二、数正方形

import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner sn = new Scanner(System.in);int n = sn.nextInt() - 1;long count = 0;long num = 1000000007;//平放// a 表示正方形边长for (int a = 1; a <= n; a++) {count += (n - a + 1) * (n - a + 1);count%=num;}// 斜放//i+j=斜正方形所占区域的边长=平放正方形的边长//但i+j>=2,也就是平放正方形的边长从2开始for (int i = 1; i <= n - 1; i++) {for (int j = 1; j <= n - i; j++) {count += (n - (i + j) + 1) * (n - (i + j) + 1);count%=num;}}System.out.println(count);}
}

背下来

相关文章:

  • python --导出数据库表结构(pymysql)
  • 【Linux】awk 命令详解及使用示例:结构化文本数据处理工具
  • boost::qvm 使用示例
  • FineReport模板认证找不到模板
  • 逻辑卷和硬盘配额(补充)
  • GT接收端共模电压
  • 永磁同步电机控制算法--模糊PI转速控制器
  • Spring Cloud核心组件深度解析(2025终极指南)
  • nuScenes 数据集及同类型自动驾驶数据集介绍
  • vcs仿真产生fsdb波形的两种方式
  • 关于iview组件中使用 table , 绑定序号分页后序号从1开始的解决方案
  • Cesium添加图片标记点、glb模型
  • 【机械视觉】Halcon—【十一、车牌检测和筛子检测】
  • 爱普生差分晶振SG2016HHN精准医疗的时钟保障
  • 软件验收报告对企业的重要性
  • 5G网络中频段的分配
  • MySQL 高级学习篇
  • C++.OpenGL (4/64)纹理(Texture)
  • 智能对联网页小程序的仓颉之旅
  • Linux 内核性能分析确保成效的关键知识点总结
  • 网络工程师考什么内容/优化网站最好的刷排名软件
  • h5响应式网站建设方案/南宁百度seo排名优化
  • 盐城专业做网站/广州百度快速排名优化
  • dz网站数据备份恢复/优秀营销软文100篇
  • 潍坊企业自助建站/百度关键词搜索次数
  • 软件园二期做网站的公司有哪些/中国国家培训网官网入口