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

广州必去十大景点排名seo百度刷排名

广州必去十大景点排名,seo百度刷排名,微信手机网页版登录入口官网,制作网页方案题目描述 杨辉三角中的每个元素是一个组合数。第 ( 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.w-s-a.com/news/431139/

相关文章:

  • 聊城做网站的公司资讯信阳 网站建设
  • 天津市工程建设交易网站查汗国珠海 网页设计
  • 龙果学院大型网站稳定性建设汾阳做网站
  • 湖北 个人网站备案时间域名查询备案查询
  • 网站推广方式校园网站怎么建
  • 长沙seo网站排名怎么在百度发帖
  • 织梦贷款网站模板做印章网站
  • 彭州做网站上海百度网络推广
  • 广州网站搭建快速提升网站排名荧光字网站
  • 15年做那些网站能致富做seo是什么意思
  • 各电商网站的特点网站制作2007
  • 用html做一号店网站怎么做公众号注册平台官网
  • 做盈利网站怎么备案vs做网站如何调试
  • 嘉兴做营销型网站廊坊做网站外包
  • 双语网站模板常州做网站的公司
  • 广州市车管所网站建设全国做网站公司前十名
  • 太原手手工网站建设公司视频直播服务
  • 雷达图 做图网站wordpress首页怎么美化
  • 四川做网站设计公司价格vip解析网站怎么做的
  • 网站建设流程域名申请做化工的 有那些网站
  • 软件开发设计流程图seo搜索引擎官网
  • 外国小孩和大人做网站东富龙科技股份有限公司
  • 上线倒计时单页网站模板做网站的资金来源
  • 泸州市建设厅网站中小企业网络需求分析
  • asp网站版权做网页价格
  • 长春网站建设路关键词优化公司哪家好
  • 河南省建设银行网站年报天津设计师网站
  • 沙洋网站定制如果自己建立网站
  • 凡科网站怎么做建站关键字搜索网站怎么做
  • 小说网站建站程序企业邮箱地址