荣耀笔试复盘第一题-计算ID数量

本文主要分享了在荣耀笔试中遇到的第一道题目,该题目要求计算ID的数量。通过应用快速幂算法,可以高效地解决这个问题,提高了解题效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在这里插入图片描述
在这里插入图片描述
快速幂算法
在这里插入图片描述

long long fastPower(long long base, long long power) {
   //快速幂算法 避免直接乘溢出
	long long result = 1;
	while (power > 0) {
   
		if (power & 1) {
   //此处等价于if(power%2==1)
			result = result * base % 1000;
		}
		power >>= 1;//此处等价于power=power/2
		base = (base * base) % 1000;
	}
	return result;
}

                
### 关于王者荣耀游戏开发的编程代码 在讨论王者荣耀的游戏开发时,可以从多个角度切入,比如前端界面设计、逻辑实现以及后端支持等。以下是几个关键部分及其对应的编程代码示例。 #### 1. 英雄属性定义 在游戏中,英雄的基础属性可以通过类的形式进行定义。以下是一个简单的 Java 类用于表示英雄的基本信息: ```java public class Hero { private String name; // 英雄名称 private int healthPoints; // 生命值 private int attackPower; // 攻击力 private int defensePower; // 防御力 public Hero(String name, int healthPoints, int attackPower, int defensePower) { this.name = name; this.healthPoints = healthPoints; this.attackPower = attackPower; this.defensePower = defensePower; } public void displayInfo() { System.out.println("Hero Name: " + name); System.out.println("Health Points: " + healthPoints); System.out.println("Attack Power: " + attackPower); System.out.println("Defense Power: " + defensePower); } } ``` 这段代码展示了如何创建一个 `Hero` 对象并初始化其属性[^2]。 #### 2. 技能系统实现 技能是游戏中非常重要的组成部分之一。下面展示了一个简化版本的技能释放逻辑: ```java public abstract class Skill { protected String skillName; public Skill(String skillName){ this.skillName = skillName; } public abstract void useSkill(Hero target); @Override public String toString(){ return skillName; } } // 继承自Skill的具体技能例子 public class FireBall extends Skill{ public FireBall(){ super("Fire Ball"); } @Override public void useSkill(Hero target){ int damage = (int)(Math.random()*50)+30; System.out.println(this.toString()+" used on "+target.getName()+", causing "+damage+" points of damage."); target.setHealth(target.getHealth()-damage); } } ``` 此代码片段说明了如何构建一个抽象基类 `Skill` 和具体的子类 `FireBall` 来代表不同的技能效果[^2]。 #### 3. 用户交互界面(Web 版本) 对于 Web 应用来说,HTML/CSS/JavaScript 是必不可少的技术栈。这里给出一段 HTML 结构用来显示玩家选择的角色列表: ```html <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>King's Glory</title> <style> .hero-card { border: 1px solid black; padding: 10px; margin-bottom: 10px;} </style> </head> <body> <h1>Select Your Champion:</h1> <div id="heroes-container"></div> <script type="text/javascript"> let heroesData = [ {"name": "Mia", "hp": 100, "attack": 20}, {"name": "Jack", "hp": 120, "attack": 18} ]; function createHeroCard(heroObj){ let divElm = document.createElement('div'); divElm.className += ' hero-card'; divElm.innerHTML = ` <strong>${heroObj['name']}</strong><br/> HP:${heroObj['hp']}<br/> Attack:${heroObj['attack']} `; return divElm; } document.getElementById('heroes-container').innerHTML = ''; for(let i=0;i<heroesData.length;i++){ document.getElementById('heroes-container').appendChild(createHeroCard(heroesData[i])); } </script> </body> </html> ``` 上面的例子演示了动态加载角色卡片到页面中的方法[^3]。 --- ###
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值