首页 \ 问答 \ 更快的算法来计算一个范围内的特定整数可以分割多少个数字(Faster algorithm to count how many numbers are divisible by a specific integer in a range)

更快的算法来计算一个范围内的特定整数可以分割多少个数字(Faster algorithm to count how many numbers are divisible by a specific integer in a range)

int a,b,c,d=0;
cin>>a>>b>>c;
for (int i=a;i<=b;i++)
 {
 if (i%c==0){d++;}
 }
cout<<d;

所以这是代码, a..b是数字范围, c是除数, dc的倍数。 例如,当a=5, b=15, c=3d等于4 ,因为“6,9,12,15”是5到15之间的倍数。我需要找到更快的方法来做到这一点,任何人都可以帮助?


int a,b,c,d=0;
cin>>a>>b>>c;
for (int i=a;i<=b;i++)
 {
 if (i%c==0){d++;}
 }
cout<<d;

So this is the code, a..b is the number range, c is the divisor, and d counts the multiples of c. For example when a=5, b=15, c=3, d equals 4, because "6, 9, 12, 15" are the multiples between 5 and 15. I need to find faster way to do this, can anyone help?


原文:https://stackoverflow.com/questions/26777546
更新时间:2019-11-21 10:09

最满意答案

一种方法就是这样做(不需要循环):

int lower = (a + c - 1) / c; // find lowest divisor (round up)
int upper = b / c;           // find higher divisor (round down)
d = upper - lower + 1;       // get no of divisors

对于您的示例案例, lower将为2, upper将为5, d等于4。


One way is to do it like this (no loops required):

int lower = (a + c - 1) / c; // find lowest divisor (round up)
int upper = b / c;           // find higher divisor (round down)
d = upper - lower + 1;       // get no of divisors

For your example case, lower will be 2, upper will be 5, giving d equal to 4.

2014-11-06

相关问答

更多

Java将ObjectInputStream结果转换为ArrayList(Java cast ObjectInputStream result to ArrayList)

EOFException是“文件结束”异常。 这意味着当没有更多数据要读取时(已经在文件末尾),您尝试读取数据。 这是因为您正在读取2个对象,但是您只发送1.而不是第二次调用in.readObject() ,只需转换您已经读过的对象: list = (List<Edge>) inObject; EOFException is an "End Of File" exception. It means you attempted to read data when there is no more

为什么当使用具有W-MON频率的重采样时,大熊猫会向前推进一周?(Why does pandas roll a week forward when using resample with W-MON frequency?)

让我们尝试使用label并closed 查看文档 : values = [1, 1, 1] dates = pd.to_datetime(np.repeat('2018-03-06', 3)) df = pd.DataFrame({ 'value': values }, index=dates) df.resample('W-MON', label='left',closed='left').size() 输出: 2018-03-05 3 Freq: W-MON, dtype:

地图旋转时,地图上的标记会改变位置(The markers on the map change position when map is rotated)

我发现了这个问题,它与点的高度有关。 我在用 PositioningManager.getInstance().getLastKnownPosition() 它返回了一个高度位置。 结果,标记在地图上方“飞行”。 将高度设置为0可解决问题。 I found the issue, it was related to the altitude of the point. I was using PositioningManager.getInstance().getLastKnownPositio

如何在Tensorflow中使用变量的旧值和新值?(How to use the old value and the new value of a Variable in Tensorflow?)

首先,当提取是独立的时,通常无法保证计算它们的顺序(具有类似情况的问题 )。 例如,如果你在一个循环中运行你的脚本,你可能偶尔得到[10, 10, 10] new_v [10, 10, 10] ,这意味着new_v评估new_v 。 在我的机器上,我无法将output2评估为0 ,因此它最有可能是实现功能,但如果它从平台更改为平台或从版本更改为版本,我不会感到惊讶。 唯一保证的值是new_v ,它总是10 ; output和output2都可以是0或10 。 要回答您的问题,同时获取两个值的最佳

如何使该功能可以在OpenCV中处理不同类型的图像(How to make the function can process different type image in OpenCV)

你不能用cv::Mat做到这一点。 但是,您可以使用cv::Mat_并进行一些模板化: template<typename T> cv::Mat_<T> drop_rows_int(cv::Mat_ mat, vector<int> v) { ... } 在这里你提取类型为T的指针。 只是一条建议,出于效率目的,如果可能的话,我建议将矢量v作为const参考发送。 这是完整的解决方案: #include "opencv/cv.h" #include <vector> #include <ios

NSMutableArray中的indexOfObject返回垃圾值(indexOfObject in an NSMutableArray returning garbage value)

你得到的价值是NSNotFound 。 你得到NSNotFound因为@"Gold"不等于@"Gold:0" 。 你应该尝试以下方法 NSUInteger index = [arrSeatSel indexOfObjectPassingTest:^BOOL(id obj, NSUInteger idx, BOOL *stop){ return [obj hasPrefix:type]; }]; if (index != NSNotFound) { [arrTotRows add

在离子3应用程序中使用JWT进行身份验证(Using JWT for authentication in an ionic 3 application)

你可以使用angular2-jwt ,它可以很好地工作并自动发送你的令牌与你的所有http请求,你可以很容易地管理你的令牌到期 你只能从配置文件中给出来自离子存储的访问令牌的来源,这里是离子的配置: import { JwtModule, JWT_OPTIONS } from '@auth0/angular-jwt'; import { Storage } from '@ionic/storage'; export function jwtOptionsFactory(storage) { r

我可以在Android 8.0中使用数据记录后台服务吗?(Can I still have a data logging background service in Android 8.0?)

如果您的用例是在此处理期间将应用程序保持在前台,那么根据文档 ,应该没有任何问题,因为如果您的应用程序不在Foreground或没有连接前台应用程序,则应用后台服务的限制该应用程序 在您的应用程序进入后台后X分钟(基于我的观察结果大约1 - 2分钟)后台服务的所有限制都将启动,您的服务将被停止,就像您已调用Service.stopSelf()一样 你应该避免连续使用它,因为它会影响设备的电池寿命,如果打算在后台进行。 您可以使用JobScheduler / AlarmManager定期执行日志记

相关文章

更多

最新问答

更多
  • 根据Woocommerce中的自定义字段计算自定义购物车商品价格(Custom cart item price calculation based on dimentions custom fields in Woocommerce)
  • 分开foreach项目并单独打印(Separate foreach items and print them individually)
  • 写模式管道是否同步?(Is write mode pipe synchronous?)
  • 发现可用的Windows Phone强调色和本地化名称(Discover available Windows Phone accent colors and localized names)
  • 使用多线程和WPF更新集合(Update Collection with multithreading and WPF)
  • 如何在字符串的情况下使用同步?(How should the synchronization be used in case of strings?)
  • 打印唯一的行,比较不超过N个字符(Print unique lines, compare no more than N characters)
  • Javascript / jQuery - 如何调用switch case从另一个函数执行(Javascript/jQuery - how to call a switch case to execute from another function)
  • Hbase超时错误不断发生(Hbase timeout errors keep occuring)
  • 如何在Delphi中更改TabControl中活动TAB的颜色(How to change the color of active TAB in a TabControl, in Delphi)
  • 正则表达式:在sublime文本中替换一些PHP代码(Regex: replace some pieces of php code in sublime text)
  • 在带有Scene2D的LibGDX中,如何在按下按钮时连续向右走?(In LibGDX with Scene2D, how can I continuously walk to the right when a button is pressed?)
  • 累加器如何在Haskell中工作?(How do accumulators work in Haskell?)
  • 使用开关检查市场和前缀与正确的货币符号(using switch to check market and prefix with correct currency symbol)
  • 在哪里分配一次使用类?(Where to allocate one time use class?)
  • 如何从两个DateTime / NaiveDateTime获取持续时间?(How do I get Duration from two DateTime / NaiveDateTime?)
  • 解析TimeSpan大于24小时?(Parse a TimeSpan greater than 24 hours? [duplicate])
  • 如何在球拍中本地更改阅读规则?(How to locally change reading rules in racket?)
  • 数据库应该由DI注入时的模拟存储(通过构造函数)(Mock storage when database should be injected by DI (through constructor))
  • 使用maven集成2个eclipse项目(Integrate 2 eclipse projects using maven)
  • 角度ng-repeat不检测变化(Angular ng-repeat not detecting changes)
  • Xaml组件在Silverlight + XNA应用程序的多个页面中可见(Xaml component visible in multiple pages in Silverlight+XNA applications)
  • 如何将`var`变量等同于另一个查询(How to equate `var` variable to another query)
  • 如何设计hyperledger链代码以适合您的业务?(how to design your chaincode of hyperledger to fit for your business?)
  • PHP readfile错误(PHP readfile error)
  • 在Date之后排序列表然后是时间(Sorting list after Date then time)
  • Android内部版本号(Android build number)
  • 在没有预设退出条件的情况下停止无限循环(stopping an infinite loop with no preset exit condition)
  • Phonegap应用程序全屏通过html页面中的按钮(Phonegap Application fullscreen through a button in html page)
  • PAA是否适合在门户网站中自动执行wcm库部署和设置?(Is PAA a good candidate for automating wcm library deployment and setup in portal?)