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

做网站云服务器装系统加工平台英语

做网站云服务器装系统,加工平台英语,广告logo免费生成,建设网站的建设费用包括哪些内容题目描述 杨辉三角中的每个元素是一个组合数。第 ( i ) 行的第 ( j ) 个元素表示组合数 ( C(i, j) ) #xff0c;即从 ( i ) 个元素中选 ( j ) 个元素的组合方式。已知一个正整数 ( N )#xff0c;要求在杨辉三角中找到这个数#xff0c;并输出它在杨辉三角中的具体位置。位…题目描述 杨辉三角中的每个元素是一个组合数。第 ( i ) 行的第 ( j ) 个元素表示组合数 ( C(i, j) ) 即从 ( i ) 个元素中选 ( j ) 个元素的组合方式。已知一个正整数 ( N )要求在杨辉三角中找到这个数并输出它在杨辉三角中的具体位置。位置可以以第几行第几个元素的形式给出或者将整个杨辉三角按顺序展开输出 ( N ) 是展开后的第几个数。 输入 一个整数 ( N )  输出 输出整数 ( N ) 在杨辉三角中对应的位置形式为第几行的第几列或者杨辉三角中的第几个元素。 解法一逐项递推法 逐项递推法通过逐行计算杨辉三角中的所有组合数直到找到目标数 ( N )。它直接从杨辉三角的第 0 行开始依次计算每一行的组合数。 代码 import java.util.Scanner;public class FindInPascalTriangleByIteration {public static void main(String[] args) {// 读取输入的目标数 NScanner scanner new Scanner(System.in);int N scanner.nextInt();scanner.close();// 初始化位置计数第0行第0列对应的位置为1int position 1;// 遍历杨辉三角的每一行for (int i 0; ; i) {// 初始化当前行的第一个组合数C(i, 0) 1long result 1;// 遍历当前行的每一个元素 (即计算 C(i, j) 的值)for (int j 0; j i; j) {// 如果找到目标数N则输出当前行和列的位置并结束程序if (result N) {System.out.println(i j); // 输出行号i和列号jreturn; // 结束程序}// 更新位置计数表示组合数在杨辉三角中的顺序position;// 计算下一个组合数C(i, j1) 使用递推公式// result C(i, j) C(i, j-1) * (i - j) / (j 1)if (j i) {result result * (i - j) / (j 1);}}}} }解法二二分查找法 二分查找法利用了组合数在每一行中先递增后递减的特性可以对每一行中的组合数进行二分查找快速定位目标数 ( N )。 代码 import java.util.Scanner;public class FindInPascalTriangleByBinarySearch {public static void main(String[] args) {// 读取输入的目标数 NScanner scanner new Scanner(System.in);int N scanner.nextInt();scanner.close();// 初始化位置计数int position 1; // 从第一元素开始计数// 遍历杨辉三角的行数for (int i 0; ; i) {// 如果这一行的中间最大值都比 N 小则跳过这一行if (comb(i, i / 2) N) {position i 1; // 更新跳过的元素位置continue;}// 在这一行中使用二分查找来查找目标数 Nint left 0;int right i / 2; // 只需要在行的左半部分查找while (left right) {int mid left (right - left) / 2;int value comb(i, mid); // 计算组合数 C(i, mid)if (value N) {System.out.println(i mid); // 输出行号 i 和列号 midreturn; // 结束程序} else if (value N) {left mid 1; // 在右半部分继续查找} else {right mid - 1; // 在左半部分继续查找}}// 如果当前行没有找到目标数更新位置计数position i 1;}}// 计算组合数 C(i, j)private static int comb(int i, int j) {long result 1;for (int k 0; k j; k) {result result * (i - k) / (k 1); // 递推公式计算 C(i, j)}return (int) result; // 返回组合数值} }总结 逐项递推法适合处理较小的数据量计算较为直观但当杨辉三角行数较大时效率较低。 二分查找法利用组合数的单调性显著提高查找效率适合处理较大的数据范围。 这两种解法在不同场景下都可以使用二分查找法尤其适合大规模数据下的查找问题。
http://www.dnsts.com.cn/news/166622.html

相关文章:

  • 网站网络推广策略和电子商务网站模板wordpress
  • 如何选择商城网站建设常德网站建设费用
  • 阿里巴巴网站备案号安卓优化大师app下载安装
  • vs2010做网站在线网页视频抓取工具
  • 德江网站建设湖南长沙旅游攻略
  • 南京电商网站开发网片点焊机
  • 中山公众号平台商场网站建设网页设计与制作dw
  • 局门户网站的建设网站上传wordpress
  • flash网站源文件下载微信小程序云开发费用
  • 互联网 网站建设深圳品牌策划培训
  • 如何做网站吸引广告商网站建设客户资料收集清单
  • 深圳带停机坪的别墅网站怎么做推广和优化
  • wordpress迁移器杭州seo哪家好
  • 自己做的视频可以传别的网站去吗建筑工程公司名字起名大全
  • 企业网站设计的深圳公司WordPress文章百度收录插件
  • 北京定制网站开发公司浩森宇特做个外贸网站大概多少钱
  • 网站如何做h5动态页面设计wordpress验证码
  • 题材挖掘机网站怎么做html网页超链接代码
  • 杭州建站公司湖南网页
  • 做网站需要什么服务器配置网站办公室
  • wordpress网站缓存安装开发网站类型
  • 中山网站排名长沙专业网站建设怎么做
  • 联通企业网站建设电子商务网址
  • 网站建设分析案例网络组建与维护心得体会
  • 图片展示型网站模板下载公司建站
  • seo技术建站网站浏览器兼容性
  • 网站开发 集成包wordpress用户数据库
  • 英文网站建设教程大麦网的网站建设
  • 可以做网页的软件莆田seo
  • 织梦企业网站源码dede网站栏目管理如何建设