Joysticks

Joysticks

Joysticks

Joysticks

题意

【题目描述】 朋友们正要去玩游戏机。他们有两个游戏机,却只有一个充电器。最开始第一个游戏机有a1%的电,第二个游戏机有a2%的电。你只能在每分钟的最开始将一个游戏机接上充电器。每一分钟每个游戏机会消耗2%的电(如果没有接上充电器)或者充上1%的电(如果接上了充电器)。
当两个游戏机都有电时游戏才能继续。因此,如果在某一分钟的开始某个游戏机只有1%的电,它必须接上充电器,否则游戏会停止。如果某个游戏机完全没电(它的电量变为0),游戏也会停下。
试确定该游戏能够持续的最长时间。禁止暂停游戏,即在每一分钟两个游戏机都应该在使用。允许将游戏机充电到超过100%的电量。

思路

  1. 先根据题目输入几个数,就定义几个数
  2. 要分两种情况(等于1和不等于1),等于1直接输出0;不等于1继续分情况

坑点

  1. 需要数学思维去理解,去思考。

算法一:for循环和if判断

时间复杂度
  • 输出大小: 1.83193492889404 MiB
  • 编译时间: 0.59s
实现步骤
  1. 定义两个数,输入,分两种情况(等于1和不等于1)
  2. 大的if判断是等于1和不等于1的情况,for循环里的if判断是游戏机的电量的判断与赋值,当游戏机的数量都小于等于0时,结束,输出结果。
  3. 终止程序
代码
 #include<iostream>
#include<algorithm>
#include<stdio.h>
using namespace std;
int main()
{
	int a,b;
	cin>>a>>b;
	if(a==1&&b==1)
	{
		cout<<"0";
		return 0;
	}
	for(int i=1; ;i++)
	{
		if(a>b)
		{
			a-=2;
			b+=1;
		}
		else
		{
			b-=2;
			a+=1;
		}
		if(a<=0||b<=0)
		{
			cout<<i;
			return 0;
		}
	}
	return 0;
} 

总结

需要一点思路,有点类似贪心问题。

import pygame import g29_controller pygame.init() BLACK = (0, 0, 0) WHITE = (255, 255, 255) RED = (255, 0, 0) GREEN = (0, 255, 0) BLUE = (0, 0, 255) windowSize = (900, 600) window = pygame.display.set_mode(windowSize) pygame.display.set_caption("G29 Controller") FPS = 10 clock = pygame.time.Clock() done = False controller = g29_controller.Controller(0) while not done: for event in pygame.event.get(): if event.type == pygame.QUIT: done = True # handle joysticks jsButtons = controller.get_buttons() jsInputs = controller.get_axis() steerPos = controller.get_steer() throtPos = controller.get_throttle() breakPos = controller.get_break() clutchPos = controller.get_clutch() steerV = bytes([128 + int(steerPos * 128)]) throtV = bytes([128 + int(throtPos * 128)]) breakV = bytes([128 + int(breakPos * 128)]) clutchV = bytes([128 + int(clutchPos * 128)]) if steerPos >= 0: ball_color = RED else: ball_color = GREEN window.fill(BLACK) plh = [] btn = [] axis = [] # axisPlh = [] axis.append(int.from_bytes(steerV)) axis.append(int.from_bytes(throtV)) axis.append(int.from_bytes(breakV)) axis.append(int.from_bytes(clutchV)) for i in range(len(jsButtons)): plh.append("%d") btn.append(jsButtons[i]) # if i < 5: axisPlh.append("%d") font = pygame.font.Font('freesansbold.ttf', 32) ph = " ".join(plh) aph = " ".join(plh[:4]) btn = tuple(btn) btnText = font.render(ph % btn, True, WHITE) axisText = font.render(aph % tuple(axis), True, WHITE) btnTextRect = btnText.get_rect() axisTextRect = axisText.get_rect() btnTextRect.center = (450, 300) axisTextRect.center = (450, 400) window.blit(btnText, btnTextRect) window.blit(axisText, axisTextRect) pygame.display.flip() clock.tick(FPS) # quit app. pygame.quit()
06-03
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值