Sweet Snippet 之 骑士金币问题

【AI技术赋能有限元分析应用实践】Abaqus有限元分析与深度学习结合20个案例与有限元分析数据来源方法说明 结合 Abaqus 和深度学习,数据的获取和处理是关键的一步。通过从仿真、实验、公开数据库或合成数据中获取数据,经过预处理后,可以将其用于训练深度学习模型。最终,将训练好的深度学习模型与 Abaqus 集成,用于材料行为预测、结构优化、非线性分析、损伤预测等任务,从而提升仿真效率和精度。 阅读详情

本文简述了骑士金币问题的两种实现方法

首先我们来看下什么是 骑士金币问题:

骑士金币问题

国王要用金币赏赐忠于他的骑士.骑士在就职的第一天得到一枚金币,接下来的两天(第二天和第三天)每天会得到两枚金币,接下来的三天(第四、五、六天)每天会得到三枚金币,接下来的四天(第七、八、九、十天)每天会得到四枚金币,这样的赏赐形式会一直持续下去,问题是给定一个天数(譬如第十天),求骑士将会获得的总的金币数量.

举个简单的例子,如果给定第十天(NNN = 10),那么骑士将会获得的总的金币数量(CCC)为:

C=1+2+2+3+3+3+4+4+4+4=1+22+32+42=30 C = 1 + 2 + 2 + 3 + 3 + 3 + 4 + 4 + 4 + 4 = 1 + 2^2 + 3^2 + 4 ^ 2 = 30 C=1+2+2+3+3+3+4+4+4+4=1+22+32+42=30

  • 循环实现

按照题意,我们直接以连续获得相同金币的天数为循环量来累加金币,当然还需要处理一下最后一轮循环天数不足的情况,代码大概是这个样子(Lua)

function golden_coins(target_days)
    local coins = 0
    local cur_coin = 1
    local days = 0
    
    while days + cur_coin <= target_days do
        coins = coins + cur_coin * cur_coin
        days = days + cur_coin
        cur_coin = cur_coin + 1
    end
    
    local remaining_days = target_days - days 
    coins = coins + cur_coin * remaining_days
    
    return coins
end

该实现方法的时间复杂度为 O(N)O(\sqrt{N})O(N​)

  • 公式实现

我们也可以直接使用公式来进行求解,主要是要了解以下两个公式:

S1=1+2+3+...+N=N(N+1)2S2=12+22+32+...+N2=N(N+1)(2N+1)6 S1 = 1 + 2 + 3 + ... + N = \frac{N(N + 1)}{2} \\ S2 = 1^2 + 2^2 + 3^2 + ... + N^2 = \frac{N(N + 1)(2N + 1)}{6} S1=1+2+3+...+N=2N(N+1)​S2=12+22+32+...+N2=6N(N+1)(2N+1)​

骑士金币问题可以认为是已知 S1S1S1 的数值,来求解 S2S2S2 的数值(当然,仍然要处理一下最后一轮循环天数不足的情况),代码大概是这个样子:

function golden_coins_v2(target_days)
    local sq_days = math.floor(0.5 * (-1 + math.sqrt(1 + 8 * target_days)))
    local coins = (sq_days * (sq_days + 1) * (2 * sq_days + 1)) / 6
    local remaining_days = target_days - sq_days * (sq_days + 1) * 0.5
    coins = coins + (sq_days + 1) * remaining_days
    return coins
end

该实现的时间复杂度为 O(1)O(1)O(1)

VTK API 详解(134):vtkOBJWriter - 写入 OBJ 模型 是 VTK 中用于将数据写入 Wavefront OBJ 文件格式的类。OBJ 格式是广泛支持的 3D 网格模型格式,支持顶点、面和基本几何信息的保存,便于模型在多种三维软件间交换。 阅读详情

相关推荐

电力系统设计实战:如何用ETAP绘制一次接线图并优化供电方案

本文详细介绍了如何使用ETAP软件进行电力系统一次接线图的绘制与供电方案优化。从基础环境配置到主接线拓扑构建,再到典型接线方式的对比分析与智能优化,为工业与民用电力系统设计提供实用指南。通过ETAP的可靠性分析和动态仿真功能,帮助工程师选择最优供电方案,提升系统可靠性和运维效率。

weixin_29250573的博客 205

C++描述 国王给骑士发放金币 ||

C++描述 国王给骑士发放金币 ||

weixin_46803686的博客 5749

Python在Windows环境下驱动乐视三合一摄像头的深度图像处理实践

本文详细介绍了在Windows系统下,使用Python驱动乐视三合一摄像头进行深度图像处理的完整实践流程。从环境配置、驱动安装、OpenNI与OpenCV库的部署,到深度与彩色数据流的读取、可视化、三维点云转换以及背景移除等应用开发,为开发者提供了从零开始掌握深度摄像头编程的实战指南。

gitlab7runner的博客 232

【PTA 7-11】骑士的金币

                               7-11 骑士的金币 (15 分) 国王用金币赏赐忠于他的骑士。骑士在就职的第一天得到一枚金币。接下来的两天(第二天和第三天)每天得到两枚金币。接下来的三天(第四、五、六天)每天得到三枚金币。接下来的四天(第七、八、九、十天)每天得到四枚金币。这样的赏赐形式一直延续:即连续N天骑士每天都得到N枚金币后,连续N+1天每天都将得到N+1枚...

Xylon的博客 3995

JW01二氧化碳传感器实战:5分钟搞定Arduino环境监测系统(附完整代码)

本文详细介绍了如何使用JW01二氧化碳传感器与Arduino快速搭建环境监测系统。通过简单的硬件连接和完整的代码示例,读者可以在5分钟内实现CO2浓度实时监测,并了解数据解析、常见问题解决及进阶应用扩展。JW01传感器的高精度和易用性使其成为创客和嵌入式开发者的理想选择。

kite3的博客 382

AI工程化之生成式UI & A2UI(二)

本文介绍了生成式UI框架A2UI的架构设计与核心实现。项目采用AI协作开发模式,通过ATDD(AI驱动的测试驱动开发)确保代码质量。前端SDK基于zustand实现框架无关的状态管理,包含协议解析器、存储管理、渲染器等核心模块。重点展示了基础store构建、A2UI协议解析器的实现过程,包括mock数据准备、测试用例生成和可视化调试。项目采用monorepo管理,利用vite实现高效开发构建。整个系统设计遵循模块化原则,通过清晰的接口定义实现各组件解耦,为后续功能扩展打下基础。

qq_34306228的博客 406

7-7 国王的金币 (10 分)

国王将金币作为工资,发放给忠诚的骑士。 第1天,骑士收到1枚金币,1 之后两天,每天收到2枚金币,1 2 2 之后3天每天收到3枚金币…….。1 2 2 3 3 3 这种工资发放模式一直延续。 求给定天数,计算一个骑士获得的金币。 输入格式: 输入发金币的天数 输出格式: 输出获得的金币总数 输入样例: 在这里给出一组输入。例如: 2 结尾无空行 输出样例: 在这里给出相应的输出。例如: 3 结尾无空行 #include<stdio.h> #includ

qq_62781214的博客 3078

手把手教你解决Windows 10网络驱动器无法访问问题(附详细排查步骤)

本文详细指导Windows 10用户解决网络驱动器无法访问的常见问题。通过从现象快速定位到系统排查,提供了从检查网络连通性、修复凭据权限到调整高级设置的完整步骤,特别是针对“找不到网络路径”等错误,帮助用户高效恢复对共享资源的访问。

weixin_29233857的博客 517

C语言 金币问题

国王将金币作为工资,发放给忠诚的骑士。第一天,骑士收到一枚金币;之后两天(第二天和第三天),每天收到两枚金币;之后三天(第四、五、六天),每天收到三枚金币;之后四天(第七、八、九、十天),每天收到四枚金币……;这种工资发放模式会一直这样延续下去。当连续N天每天收到N枚金币后,骑士会在之后的连续N+1天里,每天收到N+1枚金币。请计算在前K天里,骑士一共获得了多少金币。二、题目要求。

2301_76445610的博客 5154

新华DCS系统仿真测试方法详细介绍

新华DCS ICAN3.1系统是应用广泛并且功能非常强大的国产DCS系统。具有管理虚拟CPU并仿真运行的功能。并且上位机画面可以与虚拟DPU数据实时同步仿真。具体仿真方法如下所示: 1、 需要设备及软件: 2、步骤如下: 2.1硬件步骤: 1)电脑开机。 2)交换机连接电脑网卡。 3)交换机上电运行。 2.2软件步骤: 1)设置电脑IP 一般配置IP为A网工程站IP。 222.222.221.201/255.255.255.0 2)建立虚拟DPU 登录 D:\iCAN\Program\Vxcu 文件夹。

lw_waston的博客 6889

【x265编码器】章节1——x265的lookahead模块分析

目录一、模块功能二、lookahead模块分析1.调用流程2.代码分析Lookahead::addPicture()Lookahead::checkLookaheadQueue()Lookahead::getDecidedPicture()Lookahead::findJob()Lookahead::slicetypeDecide()PreLookaheadGroup::processTasksLookaheadTLD::lowresIntraEstimate()Lookahead::slicetypeAn

vcvdv123的博客 4万+

#517. 【基础】骑士的金币(coin)

国王将金币作为奖励,发放给忠诚的骑士。第一天,骑士收到一枚金币;之后两天(第二天和第三天)里,每天收到两枚金币;之后三天(第四、五、六天)里,每天收到三枚金币;之后四天(第七、八、九、十天)里,每天收到四枚金币……这种工资发放模式会一直这样延续下去:当连续N天每天收到N枚金币后,骑士会在之后的连续N+1天里,每天收到N+1枚金币(N为任意正整数)你需要编写一个程序,确定从第一天开始的给定天数内,骑士一共获得了多少金币。一个整数(范围1到10000),表示天数。noip2015普及组复赛第1题。

XTX的博客 952

【知识图谱】实践篇——基于知识图谱的《红楼梦》人物关系可视化及问答系统实践:part2知识获取与图谱构建、服务搭建

前序文章:其中原项目提供了关系数据如下: 其中五列数据表示:人物1,人物2,人物1与人物2关系,人物1所属家族,人物2所属家族。关系说明:以第一列为例,贾演是贾代化的父亲。下面我们就将这个数据放到neo4j中。这些需要去连接,需要安装这个包: 程序中,我使用去读取配置文件, 其中为了保持配置全局唯一性,使用单例的写法。 后面就是创建构建关系文件,构建neo4j图谱数据了,如下: 后期可能会将构建图谱内容使用flask去生成命令行的方式构建,暂时在开发的过程查看构建情况,便于调试。导入关系后,我们再查看

让算法融入生活,改变生活! 4081

C++洛谷题解(37)——P2669

题号:P2669,题名:金币

None 3213

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

【算法题】金币问题

国王将金币作为工资,发放给忠诚的骑士。第一天,骑士收到一枚金币;之后两天(第二天和第三天),每天收到两枚金币;之后三天(第四、五、六天),每天收到三枚金币;之后四天(第七、八、九、十天),每天收到四枚金币……这种工资发放模式会一直这样延续下去:当连续 nn 天每天收到 n 枚金币后,骑士会在之后的连续 n+1 天里,每天收到 n+1 枚金币。输入格式 一个正整数 k,表示发放金币的天数。输出格式 一个正整数,即骑士收到的金币数。若每次金币都能持续完,则获得金币为n*n,否则是k*n(k为剩余天数)

qq_58137891的博客 831

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

金币问题解析

国王将金币作为工资,发放给忠诚的骑士。这种工资发放模式会一直这样延续下去:当连续N天每天收到N枚金币后,骑士会在之后的连续N+1天里,每天收到N+1枚金币。第二种:k天对应到m周期的某一天,这时总金币数=第一周期的金币数到第m-1个周期金币数之和+(k-第一周期的天数到第(m-1)个周期的天数之和)*m。第二天和第三天,每天收到两枚金币。第四、五、六天,每天收到三枚金币。根据公式总天数=(首项+末项)乘以项数/2,即总数=(1+m)乘以m/2,总金币数=每个周期天数平方之和=m*(m+1)。

m0_72717671的博客 1550

金币

题目描述 国王将金币作为工资,发放给忠诚的骑士。第一天,骑士收到一枚金币;之后两天(第二天和第三天),每天收到两枚金币;之后三天(第四、五、六天),每天收到三枚金币;之后四天(第七、八、九、十天),每天收到四枚金币……;这种工资发放模式会一直这样延续下去:当连续 N 天每天收到 N 枚金币后,骑士会在之后的连续 N+1 天里,每天收到 N+1 枚金币。 请计算在前 K 天里,骑士一共获得了多少金币...

hqm793899006的博客 1183

国王给骑士金币问题

国王给为他出生入死的忠诚骑士分金币, 第一天给骑士1枚金币,随后两天每天给骑士2枚金币,接着的三天每天给3枚金币,以此类推,随后的n天给n枚金币 分析:可以用下图来表示国王每天分发的金币数量,第一天给骑士1枚金币(下图中的第一行),随后两天每天给骑士2枚金币(图中第二行),接着的三天每天给3枚金币(图中第三行)... 1 ...

weixin_55476708的博客 4958

C# 计算国王将金币作为工资,发放给忠诚的骑士

1+2+3+4+5+6+7+8+9+10+11+12+13+14=105>100,显然在14的那一组,金币就是1+2*2+3*3+...+13*13=sum,然后加上剩余的,1+2+3+4+5+6+7+8+9+10+11+12+13=(1+13)*13/2=91,sum=sum+(100-91)*14=945。我们将金币相同的看成一组,例如:122333444455555...,把1看成一组,22看成一组,333看成一组,4444看成一组,55555看成一组。请计算在前k天里,骑士一共获得了多少金币。

ftfmatlab的博客 3770

金币(题解)(非常简单)

国王将金币作为工资,发放给忠诚的骑士。第一天,骑士收到一枚金币;之后两天(第二天和第三天),每天收到两枚金币;之后三天(第四、五、六天),每天收到三枚金币;之后四天(第七、八、九、十天),每天收到四枚金币……这种工资发放模式会一直这样延续下去:当连续 nn 天每天收到 n 枚金币后,骑士会在之后的连续 n+1 天里,每天收到n+1 枚金币。第二天和第三天,每天收到两枚金币;第四、五、六天,每天收到三枚金币。因此一共收到1+2+2+3+3+3=14 枚金币。一个正整数,即骑士收到的金币数。

hb_zhyu的博客 3695

骑士的金币

国王用金币赏赐忠于他的骑士。骑士在就职的第一天获得一枚金币。接下来的两天(第二天和第三天)每天获得两枚金币、接下来的第三天(第四、五、六天)每天获得三枚金币。接下来的四天(第七、8、九、十天)每天获得四枚金币。这样的赏赐形式一直延续:即连续N天骑士每天都获得N枚金币后,连续N+1天每天都将获得N+1枚金币,其中N为任一正整数。 编写一个程序,对给定的天数计算出骑士获得的金币总数(从任职的第一天开始)。 # include <iostream> using namespace std; int m

qq_43470707的博客 1623

1969:【15NOIP普及组】金币

【题目描述】 国王将金币作为工资,发放给忠诚的骑士。第一天,骑士收到一枚金币;之后两天(第二天和第三天),每天收到两枚金币;之后三天(第四、五、六天),每天收到三枚金币;之后四天(第七、八、九、十天),每天收到四枚金币……;这种工资发放模式会一直这样延续下去:当连续N天每天收到N枚金币后,骑士会在之后的连续N+1天里,每天收到N+1枚金币。 请计算在前K天里,骑士一共获得了多少金币。 【输入】 只有1行,包含一个正整数K,表示发放金币的天数。 【输出】 只有1行,包含一个正整数,即骑士收到的金币数。 【输入

cbh666888的博客 566

金币问题(求和问题)

先上题目: 国王将金币作为工资,发放给忠诚的骑士。第一天,骑士收到一枚金币;之后两天(第二天和第三天)里,每天收到两枚金币;之后三天(第四、五、六天)里,每天收到三枚金币;之后四天(第七、八、九、十天)里,每天收到四枚金币……这种工资发放模式会一直这样延续下去:当连续N天每天收到N枚金币后,骑士会在之后的连续N+1天里,每天收到N+1枚金币(N为任意正整数)。 你需要编写一个程序,确定从第一天开始...

qq_46026740的博客 3533

国王发金币

国王发金币问题解法(2解法)

Goshalk_Fall的博客 499

C语言骑士与金币问题

国王将金币作为工资,发放给忠诚的骑士。第一天,骑士收到一枚金币;之后两天(第二天和第三天),每天收到两枚金币;之后三天(第四、五、六天),每天收到三枚金币;之后四天(第七、八、九、十天),每天收到四枚金币……这种工资发放模式会一直这样延续下去:当连续N天每天收到N枚金币后,骑士会在之后的连续N+1。+1天里,每天收到N+1。

m0_47532486的博客 1824

2015NOIP普及组 金币

第一天,骑士获得了1枚金币,第二天骑士获得了两枚金币(共3枚),第三天获得了2枚金币(共5枚),第四天获得了3枚金币(共8枚),第五天获得了3枚金币(共11枚),第六天获得了3枚金币(共14枚)

weixin_45497223的博客 598

【基础】骑士的金币(coin)

国王将金币作为奖励,发放给忠诚的骑士。第一天,骑士收到一枚金币;之后两天(第二天和第三天)里,每天收到两枚金币;之后三天(第四、五、六天)里,每天收到三枚金币;之后四天(第七、八、九、十天)里,每天收到四枚金币……这种工资发放模式会一直这样延续下去:当连续N天每天收到N枚金币后,骑士会在之后的连续N+1天里,每天收到N+1枚金币(N为任意正整数)。你需要编写一个程序,确定从第一天开始的给定天数内,骑士一共获得了多少金币。一个整数(范围1到10000),表示天数。

BK321的博客 1435
上一篇: Sweet Snippet 之 PlayerPrefs for UE4
下一篇: UE4 微笔记 之 调整网格材质参数
tkokof1
tkokof1 领域专家: 游戏开发技术领域 领域专家: 游戏开发技术领域
博客等级 码龄18年 368粉丝 198原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值