C# 一个关于等差数列的算法

华为OJ训练之0020-170106-等差数列(寻找等差数列) 题目标题:在给定的区间范围内找出所有素数能构成的最大的等差数列(即等差数列包含的素数个数最多)。详细描述: 接口说明 原型: int GetMaxArray(unsignedint m, unsignedint n, unsignedint *pArrayNum , unsignedint *pArray) 输入参数: unsigned int m 给定的区间下限 unsigned in 阅读详情
一个积分,对应一个等级,但一个等级可能对应多个积分,这样,如果给你任意一个积分,怎么用公式算出等级?没有财富了,郁闷……
前面3级情况特殊:
积分:0 = 等级:1
积分:1 = 等级:2
积分:2 = 等级:3
后面情况一样,每4级为一个阶段。
积分:3或4或5 = 等级:4
积分:6或7或8 = 等级:5
积分:9或10或11 = 等级:6
积分:12或13或14 = 等级:7
---------------------------------------------
积分:15或16或17或18或19 = 等级:8
积分:20或21或22或23或24 = 等级:9
积分:25或26或27或28或29 = 等级:10
积分:30或31或32或33或34 = 等级:11
---------------------------------------------
积分:35或36或37或38或39或40或41 = 等级:12
积分:42或43或44或45或46或47或48 = 等级:13
积分:49或50或51或52或53或54或55 = 等级:14
积分:56或57或58或59或60或61或62 = 等级:15
---------------------------------------------
积分:63或64或65或66或67或68或69或70或71 = 等级:16
积分:72或73或74或75或76或77或78或79或80 = 等级:17
积分:81或82或83或84或85或86或87或88或89 = 等级:18
积分:90或91或92或93或94或95或96或97或98 = 等级:19

---------------------------------------------


上面是以为论坛上的朋友提出的问题。

通过观察我们可以发现每4行一组,每组数字每行的个数比上一组每行多2个。

设当前组为N:每行有2*n+1个数字,由于每组4行得知每组最大数字为:(2*n+1)*4+上一组的值

从3--14为第一组,最大值为(2*n+1)* 4 + 2

根据分数求等级:level=score/每行个数+每行个数(不计小数)


由此可以写出如下代码:

        private static int checkLevel(int score)
        {
            int level = 0;
            if (score < 4)
            {
                level = score + 1;
            }
            else if (score == 4)
            {
                level = 4;
            }
            else
            {
                int rus = 2;
                for (int n = 1; n < int.MaxValue; n++)
                {
                    //(2*n+1)*4+2
                    rus = 8 * n + 4 + rus;
                    if (rus >= score)
                    {
                        rus = n;
                        break;
                    }
                }

                level = score / (2 * rus + 1) + (2 * rus + 1);

            }
            return level;
        }

不知道各位是否有更好的算法,欢迎交流。









《C#零基础入门之百识百例》(五十四)派生类的介绍和使用 -- 等差数列 在设计派生类的构造函数时,需要考虑派生类新增成员和从基类继承的数据成员的初始化。 阅读详情

相关推荐

C#实现等差数列前n项及求和项目.zip

C#(发音为“看井”)是一种由微软开发的现代、类型安全的面向对象编程语言。它是.NET框架的核心语言之一,广泛应用于企业级应用程序的开发。C#提供了一套丰富的库和框架支持,能够开发从简单的控制台应用程序到复杂的Web和云服务。等差数列是一个在数学中非常常见和重要的概念,它指的是从第二项起,每一项与它前一项的差都等于同一个常数。这个常数被称为等差数列的公差,通常用字母d表示。而数列的第一项称为首项,通常用字母a表示。等差数列的一般形式可以用数学公式表示为:a_n = a + (n-1)*d。

weixin_42430341的博客 956

给定a、b、c,以a为起始数值,b为差,c为数值的数量,产生一个递增的等差数列,将这个数列以列表格式输出。

代码如下: a,b,c = 1,3,10 l = [] for i in range(c): l.append(a + b * i) print(l) 先假设a为1,差值b为3,等差数列的数量c为10. 运行结果如下:

m0_56040894的博客 1131

C#等差数列输出前n项元素及求和.rar

工具VS2010,循环结构语句实现等差数列输出前n项元素,以及求解并输出它们的和,利用textBox1输入n的值。等差数列的数据可以改。

寻找等差数列

题目标题:在给定的区间范围内找出所有素数能构成的最大的等差数列(即等差数列包含的素数个数最多)。 详细描述:接口说明原型:int GetMaxArray(unsignedint m, unsignedint n, unsignedint *pArrayNum , unsignedint *pArray)输入参数:unsigned int m 给定的区间下限unsigned int n 给定的区间上

ZWY18064117182的专栏 1269

c#等差数列计算

c#控制台编写的等差数列计算,供初学者参考,希望你们有进步

等差数列的算法

本程序是用C#语言来写的,对于刚刚学C#的同学很有帮组!呵呵

C#实现等差与等比数列求和

用C#实现以下两个求和: 1、2+4+6+……+100 2、2+22+23+24+……+210 程序如下: using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace ConsoleApplication1...

ibianma的博客 2408

Axure原型模板与元件库APP交互设计素材(附资料)

在Axure中,手机模型是展示APP或小程序界面效果的重要工具。通过导入手机模型元件,设计师可以更加直观地模拟真实设备的显示效果,从而更准确地评估设计的可行性和用户体验。Axure官方及第三方资源库中提供了多种品牌和型号的手机模型,如iPhone、Android等,设计师可以根据项目需求选择合适的模型进行使用。Axure作为一款强大的原型设计工具,为APP和小程序的设计与开发提供了丰富的界面组件元件库和交互设计素材。

招风的黑耳优快云 1981

LeetCode刷题1502-简单-判断能否形成等差数列

算法作为极其重要的一点,是大学生毕业找工作的核心竞争力,所以为了不落后与人,开始刷力扣算法题!

布小禅的博客 1633

最全卷积总结篇(分组、深度可分离、空洞、转置等)

分组卷积(Group Convolution)是一种卷积操作方式,它最早在AlexNet中引入,并在深度学习中被广泛使用,尤其是在高效模型设计(如MobileNet和ResNeXt)中。分组卷积通过将输入特征通道分为若干组,并在每组内单独进行卷积操作,可以减少计算复杂度和参数量,同时有效利用模型的结构特性。分组卷积的工作原理通道分组:输入特征图的通道图为C_in,输出特征图的通道数为C_out,将每组的C_in和C_out分为G组,每组的通道数为C_in/G和C_out/G。组内卷积。

qq_44815135的博客 4219

GPOPSII 对控制量变化率进行约束,避免控制量振荡

在这篇文章中,在GPOPSII中通过对控制量变化的约束,优化求解得到更平滑的控制量曲线,更符合真实控制约束。

Dannyfomer的博客 1871

等差数列问题

  上次理解的题目意思是从一个长100的数组中找到最长的等差数列(注意:本程序只输出最长等差数列的尾数的位置和该数组的长度)缺点:如果最长的等差数组有两个,只输出第一个.暂时没有使用第二个数组#include #define N 10void main(){       int A[N] ={3,5,7,99,11,13,15,3,457,10};       in

fengzar1984的专栏 2063

从空调温控到信号降噪:一阶RC低通滤波器在Arduino和STM32上的C语言实现指南

本文详细介绍了如何在Arduino和STM32平台上使用C语言实现一阶RC低通滤波器,涵盖从基础理论到实际应用的完整流程。通过具体代码示例和优化技巧,帮助开发者有效处理传感器噪声、信号平滑等问题,提升嵌入式系统的信号处理能力。

weixin_30565199的博客 502

力扣算法笔记 —— 等差数列

感觉现在算法题的重点是要仔细读题了,我看题的时候只看到了对数组重新排序,我就以为是随意无序排序的数组,后来发现是有序排序,然后刚好C#里还有个现成的有序排序API,这道题真的是仔细看题之后就很简单。对数组重新排序得到 [1,3,5] 或者 [5,3,1] ,任意相邻两项的差分别为 2 或 -2 ,可以形成等差数列。如果一个数列中,任意相邻两项的差总等于同一个常数,那么这个数列就称为。如果可以重新排列数组形成等差数列,请返回。

m0_64375864的博客 338

GPS-SDR-SIM使用详解

GPS-SDR-SIM 是一款开源工具,能够生成 GPS 基带信号数据流,这些数据流可通过软件定义无线电(SDR)平台(如 ADALM-Pluto、bladeRF、HackRF、USRP 等)转换为射频(RF)信号。简单来说,它能模拟 GPS 卫星信号,帮助开发者或爱好者测试 GPS 接收设备的性能,而无需依赖真实的卫星信号。

qq_35621280的博客 1241

阿里云 Docker 镜像加速收费后:这些免费替代方案值得收藏

阿里云Docker镜像加速服务收费后,国内开发者急需免费替代方案。本文推荐2025年仍可用的7个免费镜像源,包括轩辕镜像、DaoCloud、网易云等,并提供多源配置方案以提高稳定性。建议开发者在CI/CD环境中配置多个镜像源,避免构建失败。文章还提供了详细的配置步骤和使用建议,适合个人和团队开发者参考。

sg_knight的专栏 1931

bzoj 3357 等差数列

Description 约翰发现奶牛经常排成等差数列的号码.他看到五头牛排成这样的序号:“1,4,3,5,7” 很容易看出“1,3,5,7”是等差数列. 给出N(1≤N≤2000)数字AI..AN(O≤Ai≤10^9),找出最长的等差数列,输出长度. Input 第1行:一个整数N. 第2到N+1行:每行一个整数Ai,表示牛的号码. O...

weixin_30458043的博客 93

手把手教您如何群晖/飞牛NAS等服务器上一键部署洛雪音乐同步服务,手机电脑无缝同步歌单,支持外网访问

🎵 手机电脑歌单不同步?用Docker在群晖/飞牛NAS等服务器上搭个同步服务器, 3分钟搞定 !支持docker-compose一键部署,手机、电脑、平板收藏夹实时同步,外出也能用域名远程访问 ~ ✨

XiaoqiangClub的博客 4608

Leetcode 1502. 判断能否形成等差数列 c#

题目: 给你一个数字数组 arr 。 如果一个数列中,任意相邻两项的差总等于同一个常数,那么这个数列就称为 等差数列 。 如果可以重新排列数组形成等差数列,请返回 true ;否则,返回 false 。 示例 1: 输入:arr = [3,5,1] 输出:true 解释:对数组重新排序得到 [1,3,5] 或者 [5,3,1] ,任意相邻两项的差分别为 2 或 -2 ,可以形成等差数列。 示例 2: 输入:arr = [1,2,4] 输出:false 解释:无法通过重新排序得到等差数列。

LiCcCcCcccCcc的博客 434

C# 上位机程序中的数据采集与存储技术:从采集到持久化的完整解决方案

本文系统讲解C#上位机程序如何实现设备数据采集与持久化。主要内容包括:1)多种数据采集方式(串口通信、Modbus、OPC等)及代码示例;2)详细对比不同存储技术(CSV、SQLite、关系型数据库等)的优缺点;3)提供SQLite等存储实现代码;4)推荐分层系统架构(采集-缓存-存储-可视化);5)性能优化建议(多线程采集、异步存储、批量写入等)。文章强调应根据项目需求选择合适的技术方案,构建高效稳定的数据采集存储闭环系统。

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 1025

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

求一个等差数列

需要要一个金额递减的效果,最终的效果如下,这其实就是一个等差数列。 我们学过的等差数列求和公式是: 也就是首末相加乘以N再除以2.而我们得到的参数是总金额和总人数,求整个数列。我们默认最小的差值是0.01,也就是一分钱,首项是a0,那么aN=a0+(n-1)*gap代码如下: private decimal[] GetDeclines(decimal reward, int p...

weixin_34174105的博客 286

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

数据结构与算法-等差数列

等差数列(又名算术数列)是数列的一种。在等差数列中,任何相邻两项的差相等。该差值称为公差。例如数列 就是一个等差数列。 在这个数列中,从第二项起,每项与其前一项之差都等于2,即公差为2。 1.求1+2+3+......+100结果的程序 int sum = 0,n = 100; sum = (1 + n) * n / 2; printf("%d", sum);

xpzhang123的专栏 1047

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

求数组最大等差数列

问题(优酷笔试题)求一个数组的一些值,使这些值满足等差数列。 注意:数组可以选出来的值不一定按照原有顺序。 比如:1,2,3,7,5,4,6,12 最长等差为:1,2,3,4,5,6,7 返回7思路O(n*n)解法: 1、快速排序 nlogn 2、dp算法dp[i][j]: 以A[i]A[j]开始的数列的长度(数列的前两项) dp[i][j]的子结构: dp[i][j]=

T Yuan 2796

算法 Tricks(三)—— 判断序列是否为等差数列

判断一个数列不是等差数列,要比判断一个数列是等差数列比较容易。 bool progressive = true; for (int i = 0; i < A.size() - 1; ++i){ if (A[i+1] - A[i] != A[1] - A[0]){ progressive = false; brea...

weixin_30360497的博客 476

华为oj之等差数列前n项和

题目: 等差数列 热度指数:1010 时间限制:1秒 空间限制:32768K 题目描述功能: 对于等差数列 2,5,8,11,14…输入: 正整数N >0输出: 求等差数列前N项和返回: 转换成功返回 0 ,非法输入与异常返回-1输入描述:输入一个正整数。输出描述:输出一个相加后的整数。输入例子:2 输出例子:7在线提交网址: http://www.nowcoder.com/prac

极客学长Bravo | 突破信息差 | 副业生财有术 1507

等差数列

问题 1059: C二级辅导-等差数列 时间限制: 1Sec 内存限制: 128MB 提交: 192 解决: 168 题目描述 sum=2+5+8+11+14+…,输入正整数n,求sum的前n项和。 输入 无 输出 无 样例输入 2 样例输出 7#include using namespace std; int main() { int a1=2,d=3,n,sum; c

chenlang2015的博客 399
上一篇: c#你怎么判断一个字符串是否是数字?
下一篇: [C#]简单重写IComparer接口,实现自己的String.CompareTo 方法,自定义比较规则。
Hauk
博客等级 码龄15年 219粉丝 20原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值