蓝桥杯--割绳子问题

不对折(对折零次),从中间切一刀,得到 2 根面条, 2 = 2
对折一次,从中间切一刀,得到 3 根面条, 3 = 2 + 2^0
对折两次,从中间切一刀,得到 5 根面条, 5 = 2 + 2^0 + 2^1
对折三次,从中间切一刀,得到 9 根面条, 9 = 2 + 2^0 + 2^1 + 2^2
对折十次,从中间切一刀,得到 2 + 2^0 + 2^1 + 2^2 + ...... + 2^9 根面条

在这里插入图片描述

#include<stdio.h>
int split(int times){
	int result=2;
	int s=1;
	for(int i=0;i<times;i++){
		result+=s;
		s=s*2;
	}
	return result;
} 


int main(){
	int times=0;
	int result;
	for (int i=0;i<=10;i++){

		result=split(times);
		printf("对折%d次,切一刀,共有%d段\n",times,result);
		times++;
	
	
}
	
//	}
	
	return 0;
	}

运行结果如下:

对折0次,切一刀,共有2段
对折1次,切一刀,共有3段
对折2次,切一刀,共有5段
对折3次,切一刀,共有9段
对折4次,切一刀,共有17段
对折5次,切一刀,共有33段
对折6次,切一刀,共有65段
对折7次,切一刀,共有129段
对折8次,切一刀,共有257段
对折9次,切一刀,共有513段
对折10次,切一刀,共有1025段

--------------------------------
Process exited after 0.592 seconds with return value 0
请按任意键继续. . .
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
s': // 地球向下移动 earth_pos[1] -= 0.1; break; } } // 定时器事件处理函数 void timer(int value) { update(); glutTimerFunc(20, timer, 0); } 绳子是一款非常流行的益智游戏,它的核心玩法是通过切绳子来// 主函数 int main(int argc, char *argv[]) { glutInit(&argc, argv); glutInitDisplayMode(GLUT让物体掉落到指定位置,同时需要收集星星来获取更高的分数。在 Cocos Creator 中_DOUBLE | GLUT_RGB | GLUT_DEPTH); glutInitWindowSize(800, 600); glutCreateWindow("Earth and Moon"); glut实现绳子的过程大致可以分为以下几个步骤: 1. 创建游戏场景和物体DisplayFunc(display); glutMouseFunc(mouse); glutKeyboardFunc(keyboard); glutTimerFunc(20, timer, 0); :使用 Cocos Creator 的场景编辑器创建游戏场景,然后添加需要切绳子和物体等 init(); glutMainLoop(); return 0; } ``` 这个程序使用了OpenGL库,实现了一个简游戏元素。 2. 实现物体的掉落:使用物理引擎(如 Cocos Creator 自带的 Box单的地月绕太阳公转的效果。其中地球和月球是用图素构造法构成的2D 物理引擎)来实现物体的掉落,同时设置物体的刚体属性、碰撞体属性三维球体,太阳是一个实心球体。程序支持鼠标左键点击开始运动,支持键等。 3. 实现绳子的切:在游戏场景中添加触摸事件监听器,当玩家触盘控制地球改变轨道。此外,地球和月球还添加了phong光照效果,增摸到绳子时,计算出触摸点与绳子的交点,并将绳子分成两段。可以使用强了真实感。 程序中使用了三个数组分别存储地球和月球的位置和速度,每 Cocos Creator 自带的 Graphics 组件来绘制切后的绳子。 4. 实现星星的收集:在次更新时根据万有引力定律计算它们的位置和速度。鼠标事件处理函数中实现游戏场景中添加触发器,当物体与星星重叠时,触发收集星星的事件,并了视角的变换,键盘事件处理函数中实现了地球的移动。定时器事件处理函数中更新分数。 5. 实现游戏结束逻辑:当物体掉落到指定位置或者掉落到屏不断更新地球和月球的位置和速度,并进行重绘。 希望这个示范程序对你有所帮助。如果还有疑问,可以继续提问。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

鲲鹏猿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值