问题描述如下:
“我们10之下所有3和5的倍数都列出,为3,5,6,9(注意是10以下),我们得出这些数和为23,求出1000之下3,5倍数之和。”
代码如下,
public static int getSum(int n) {
int sum = 0;
for (int i = 0; i < n; i++) {
if (i % 3 == 0 || i % 5 == 0) {
sum += i;
}
}
return sum;
}
可以得到结果233168.
但是,如果我们不是求3,5的倍数,而是其他的数倍数,上面的代码就不够用了,于是重构代码如下,
public static int sumDivisibleBy(int n,int target) {
int sum = 0;
for (int i = 0; i < target; i++) {
if (i % n == 0) {
sum += i;
}
}
return sum;
}
我们就可以通过,
int sum = sumDivisibleBy(3,target)+sumDivisibleBy(5,target)-sumDivisibleBy(15, target);
来获得结果。
再想想,是不是可以再优化呢?答案是可以的。
在target=1000,n=3时,我们可以得到3+6+9+12+......+999=3*(1+2+3+4+...+333)
在target=1000,n=5时,我们可以得到5+10+15+......+995=5*(1+2+...+199)
可以得到333=999/3,199=995/5,可以设置p=999/n
1+2+......+p = 1/2 *p*(p+1),代码如下:
public static int sumDivisibleBy1(int n,int target) {
int p = (target% n == 0)?(target-1)/n:target/n;
return p*(p+1)*n/2;
}
请不吝赐教!
@anthor ClumsyBirdZ
分享到:
相关推荐
在计算机编程领域,特别是JavaScript编程语言中,"Multiples-of-3-and-5:3 和 5 的倍数 - 1000 以下所有 3 或 5 的倍数之和"这个主题聚焦于一个经典的算法问题,涉及到数学和编程技巧的结合。这个问题通常用来教授...
标题中的“1000以下3或5的所有倍数之和”是一个数学问题,涉及到数列求和的基本概念。在MATLAB中解决这个问题,我们需要理解循环结构、条件判断以及数列求和的方法。MATLAB是一种高级数值计算和可视化软件,非常适合...
要找到1000以下3或5的所有倍数的总和,我们可以使用循环结构和条件判断来解决。以下是一种可能的解决方案: 首先,我们需要创建一个循环,从1开始遍历到1000(不包括1000),因为我们要找的是小于1000的数。然后,...
- 并非个位上是3、6、9的数都是3的倍数,还需考虑其他数位的数字之和是否能被3整除。 5. 3的倍数判断: - 下列数中3的倍数有72、111、78、105、27、51、81、57,这些数字各数位上的数字相加的和能被3整除。 6. ...
- 一个九位数,个位是偶数(0, 2, 4, 6, 8)时是2的倍数,个位是0或5时是5的倍数,个位是奇数(1, 3, 5, 7, 9)时是奇数。 - 3的倍数中,最小的三位数是102,最小的两位数是12,最大的两位偶数是96,最小的两位...
标题中的任务是编程挑战,要求找出1到1000之间所有能被7整除的数字,并计算每连续5个这样的数字之和,然后输出这些和。这是一个基础的编程问题,涉及循环、条件判断和算术运算等概念,通常可以在各种编程语言中实现...
这篇文档是针对五年级学生设计...这份练习旨在帮助学生巩固对2、3、5倍数特征的理解,通过实践应用提高他们的判断能力和数学思维。在教学过程中,教师可以通过类似练习引导学生探索规律,深化理解,提升问题解决能力。
标题中的“cpp代码-编程找出10-1000中能被3和5整除的所有自然数”指的是一个使用C++编程语言编写的程序,它的任务是找到10到1000这个区间内所有同时能被3和5整除的自然数。这个问题在编程领域属于基础算法和循环控制...
这个问题——“求1000以内被3或5整除的数字之和”——就是一个典型的例子。这里我们将深入探讨两种不同的解决方案,并结合等差数列的概念来解析第二种解法。 首先,让我们回顾一下第一种常见的解法,这种方法基于...
标题中的“1000-4000能被7和17整除的数”是一个编程问题,涉及计算机科学中的数字处理、条件判断和循环结构。在Delphi编程环境中,这个问题可以通过编写一个简单的算法来解决。以下是相关知识点的详细说明: 1. **...
- 2、3、5的倍数特征:题目中要求找出给定数字中哪些是2、3、5的倍数,以及既是2的倍数又是5的倍数,同时是3和5的倍数。这涉及到数的倍数性质,如个位为0或5的数是5的倍数,各位数字相加的和能被3整除的数是3的倍数...
例如,83和125的最小公倍数是1000。 五、化简分数 将分数化为最简形式,意味着分子和分母没有公共因数,除了1。例如,123可以简化为41,86可以简化为43,2015可以简化为403,128可以简化为32,96可以简化为16,42...
- 训练2中的乒乓球数量问题,需要找到4、5、6、7、8的最小公倍数,然后减去1。 4. **应用拓展**:除了基本的数学运算,最小公倍数还可以应用于解决实际问题,如: - 例题4中的电线杆问题,通过找到50和60的最小公...
8.有一个3位数,在1-1000以内,它的百十个位分别的立方之和等于这个数,求这个三位数 9.在1-10000中找出是完整数的(例如:6=1+2+3) 10.倒的九九乘法表 11.正三角型 12.韩信点兵 13.爱因斯坦的数学问题 14.质数问题...
1. **高倍数和中倍数泡沫定义**: - 高倍数泡沫:发泡倍数为201~1000倍的泡沫。 - 中倍数泡沫:发泡倍数为21~200倍的泡沫。 2. **封闭空间定义**: - 封闭空间是由难燃烧体、不燃烧体或非燃烧体所包围的空间,...
- 非2的倍数:1、3、5、7、9... 同样地,请同学们自行列举几个例子来验证这个规律。例如,128是个位数为8的数,因此它是2的倍数;而127则不是2的倍数,因为它个位数为7。 **总结**:所有个位数为0、2、4、6或8的数...
以下是一些关键的数学概念和公式,适用于小学1-6年级的学生。 1. **基本运算**: - 加法:加数+加数=和;和-一个加数=另一个加数 - 减法:被减数-减数=差;被减数-差=减数;差+减数=被减数 - 乘法:每份数×份数...
- 例如:571至少加1是2的倍数,至少加2是3的倍数,至少加4是5的倍数。 2. **单位转换**: - 立方米到立方分米、升到毫升的转换:1立方米=1000立方分米,1升=1000毫升。 - 例如:3.85立方米等于3850立方分米,4升...
这篇文档是针对2015-2016学年青岛版三年级上学期数学课程的1-5单元测试题,涵盖了多个数学知识点。以下是这些测试题所涉及的主要内容: ...通过完成这些题目,学生可以巩固所学知识,提高数学思维和问题解决技巧。