前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >CSDN蓝桥杯算法题——题解Java版本——切面条

CSDN蓝桥杯算法题——题解Java版本——切面条

作者头像
红目香薰
发布2023-02-16 08:59:05
2260
发布2023-02-16 08:59:05
举报
文章被收录于专栏:CSDNToQQCode

目录

题目:切面条

答案目标:

推导过程:

解析过程:

对照Java编码1:

对照Java编码2:

总结:


题目:切面条

一根高筋拉面,中间切一刀,可以得到2根面条。 如果先对折1次,中间切一刀,可以得到3根面条。 如果连续对折2次,中间切一刀,可以得到5根面条。 那么,连续对折10次,中间切一刀,会得到多少面条呢?

答案目标:

推导过程:

这个题应该找有几个节点,这个节点是干扰切断的关键。 这种题一般都会涉及2的次幂。 0折的时候,有0的节点,一刀分为了2条 1折的时候,有1个节点,一刀分为了3条,假如没有那个节点,应该是4条,所以 4 - 1 = 3 2折的时候,是在1折的基础上,本身已经有1个节点,然后再加上2个,1 + 2 = 3个节点,一刀切开本身应该8条,所以8-3=5. 3折的时候,是在2折基础上,1 + 2 + 4 = 7个节点,一刀切开,本身应该16条,16-7=9条。 。。。 。。。 所以我们找出规律: n折的时候,节点数应该为 2的0次幂+......2的n-1次幂。也就是2的n次幂-1。所以10次的时候,有1024-1=1023个节点。 n折的时候本身应该有2的n+1次幂2048条。所以2048-1023=1025 故而有: 折 条 0 2 1 3 2 5 推导可得:

count=1+2^{n}
count=1+2^{n}

解析过程:

count=1+2^{n}
count=1+2^{n}

将目标对折次数带入方程式可得: n=10 count=1+

2^{10}
2^{10}

=1+1024=1025

对照Java编码1:

代码语言:javascript
复制
package com.item.action;

import java.util.Scanner;

public class Demo1 {

	public static void main(String[] args) {
		// 切面条·没有说N的取值范围
		//推导式​​:count=1+Math.pow(2,n);
		Scanner sc =new Scanner(System.in);
		int n = sc.nextInt();
		sc.close();
		int count=(int) (1+Math.pow(2,n));
		System.out.println(count);
	}

}

对照Java编码2:

如果使用纯暴力也是可以的,因为我们已经掌握了循环的规律。

代码语言:javascript
复制
package com.item.action;

import java.util.Scanner;

public class Demo1_2 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Scanner sc = new Scanner(System.in);
		int n = sc.nextInt();
		sc.close();
		int result = 2;//底数
		int temp = 1;//用于缓存
		// 循环累加公式: 2 + 2^0 + 2^1 + 2^2 + ...... + 2^n
		for (int i = 0; i < n; i++) {
			result += temp;
			temp = temp * 2;//2的n次方,进行累加
		}
		System.out.println(result);
	}

}

总结:

本题目有很多种解法,无论是用手画,或者挨个计算,或者使用暴力循环,以及向我一样推导出对应的算法公式传递参数都可以。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023-02-06,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 题目:切面条
  • 答案目标:
  • 推导过程:
  • 解析过程:
  • 对照Java编码1:
  • 对照Java编码2:
  • 总结:
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档