鱼C论坛

 找回密码
 立即注册
查看: 33270|回复: 274

题目1:找出1000以下自然数中3和5的倍数之和

  [复制链接]
发表于 2015-4-20 23:11:11 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 不二如是 于 2017-6-17 22:13 编辑
Multiples of 3 and 5

If we list all the natural numbers below 10 that are multiples of 3 or 5, we get 3, 5, 6 and 9. The sum of these multiples is 23.

Find the sum of all the multiples of 3 or 5 below 1000.


题目:

10 以下的自然数中,属于 3 或 5 的倍数的有 3, 5, 6 和 9,它们之和是 23。

找出 1000 以下的自然数中,属于 3 或 5 的倍数的数字之和。

评分

参与人数 1荣誉 +3 鱼币 +5 贡献 +2 收起 理由
瞬秒爆加速 + 3 + 5 + 2 支持楼主!

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2015-4-24 14:25:40 | 显示全部楼层
我的结果是233168!哈哈哈哈哈
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 4 反对 0

使用道具 举报

发表于 2015-4-24 14:26:58 | 显示全部楼层
本帖最后由 永恒的蓝色梦想 于 2020-9-15 18:51 编辑

把代码贴一下,看看对不对,哪位大婶有牛鼻的,希望不吝赐教阿!
sum=0
for i in range(0,1000):
    if i%3==0 or i%5==0:
        sum=sum+i
        i=i+1
    else:
        i=i+1
print(sum)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 6 反对 5

使用道具 举报

发表于 2015-4-26 11:16:20 | 显示全部楼层
本帖最后由 瞬秒爆加速 于 2015-4-26 11:19 编辑
def pl(x):
        s=[]
        for i in range(x):
                if i % 3 ==0 or i % 5 ==0:
                        s.append(i)
        else:
                return sum(s)
def pl(x):
        return sum([i for i in range(x) if i % 3 ==0 or i % 5 ==0])
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 2 反对 0

使用道具 举报

发表于 2015-5-17 18:09:16 | 显示全部楼层
>>> s3 = [x for x in range(1,1000) if x%3 == 0]
>>> s5 = [x for x in range(1,1000) if x%5 ==0 and x%3 == 0]
>>> sum(s3)+sum(s5)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 1

使用道具 举报

发表于 2015-5-17 18:11:05 | 显示全部楼层
本帖最后由 永恒的蓝色梦想 于 2020-9-15 18:51 编辑
s5 = [x for x in range(1,1000) if x%5 ==0 and x%3 != 0]
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 2 反对 0

使用道具 举报

发表于 2015-5-18 17:57:55 | 显示全部楼层
long theSum(int maxNum)
{
        int i;
        long sum = 0;

        for (i = 3; i < maxNum; i += 3)
        {
                sum += i;
        }
        for (i = 5; i < maxNum; i += 5)
        {
                sum += i;
        }
        for (i = 15; i < maxNum; i += 15)
        {
                sum -= i;
        }

        return sum;
}
直接把数字拿出来算
这题传参为1000
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 2 反对 0

使用道具 举报

发表于 2015-6-26 00:20:18 | 显示全部楼层
那答案是多少啊,算出来是4432504

点评

不,我坚决不同意楼主的看法!: 0.0
不,我坚决不同意楼主的看法!: 0
233168  发表于 2023-1-3 20:02
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 0 反对 3

使用道具 举报

发表于 2015-6-26 00:28:18 | 显示全部楼层
# include<stdio.h>

int main()
{
        int i=0,total;
        while (i<1000)
        {
                if(i%5==0)
                {
                        total+=i;
                }
                else if(i%3==0)
                {
                    total+=i;        
                }
                i++;
        }
        printf("%d\n",total);
        return 0;
}

点评

不,我坚决不同意楼主的看法!: 1.0 我很赞同!: 5.0
我很赞同!: 5
  发表于 2023-1-3 20:00
不,我坚决不同意楼主的看法!: 1
total 没有赋初始值!  发表于 2020-7-14 21:55
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 3

使用道具 举报

发表于 2015-6-29 15:19:19 | 显示全部楼层
本帖最后由 永恒的蓝色梦想 于 2020-9-15 18:53 编辑

我的答案是233168。
C语言:
#include <stdio.h>

int main(void)
{
    int i,result = 0;
    for(i=0;i<1000;i++)
    {
    if(i % 3 == 0 || i % 5 == 0)
    {
    result += i;
    }
    }
    printf("%d\n",result);
}
如果有错误希望指出
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 4 反对 0

使用道具 举报

发表于 2015-6-29 15:20:38 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-7-8 17:53:00 | 显示全部楼层
本帖最后由 永恒的蓝色梦想 于 2020-9-15 18:53 编辑
sum([x for x in range(1000) if not(x%3) or not (x%5)])
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 3 反对 0

使用道具 举报

发表于 2015-7-8 17:54:55 | 显示全部楼层

错了,有的数同时是3和5的倍数。
比如 15
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-7-19 22:03:06 | 显示全部楼层
#include<stdio.h>
void main()
{
        int i, j;
        i = 3;
        j = 0;
        while(i <1000)/*算出所有3的倍数的和*/
        {
                j += i;
                i += 3;
        }
        i = 5;
        while(i < 1000) /*算出所有5的倍数的和*/
        {
                j += i;
                i += 5;
        }
        i = 15;
        while(i<1000)/*减掉3的倍数5的倍数重复的也就是15的倍数的和*/
        {
                j -= i;
                i += 15;
        }
        printf("sum = %d",j);
        
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2015-8-20 17:42:21 | 显示全部楼层
def sum(frm,to):
    result=0
    for i in range(frm,to):
        if i%3==0 or i%5==0:
            result+=i
    return result
print(sum(0,1000))
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2015-10-8 08:28:40 | 显示全部楼层
本帖最后由 永恒的蓝色梦想 于 2020-9-15 18:53 编辑
Number_list = range(0,1000)

sum1 = 0
for number in Number_list:
        if (number % 3 == 0 ) or (number % 5 ==0):
                sum1 += number


print('1000以下的3或5的倍数的自然数之和是:<%d>'%sum1)

===========================================
结果:
1000以下的3或5的倍数的自然数之和是:<233168>
===========================================
感觉想得比较简单,代码有点多!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2015-10-19 18:46:01 | 显示全部楼层
int sum, sum1, sum2, sum3, a, b, c;
a = 999 / 3;
b = 999 / 5;
c = 999 / 15;
sum1 = (3 + 3 * a ) * a / 2;  //1000以下自然数中3的倍数之和
sum2 = (5 + 5 * b ) * b / 2;  //1000以下自然数中5的倍数之和
sum3 = (15 + 15 * c) * c / 2;   //1000以下自然数中3和5最小公倍数的倍数之和
sum = sum1 + sum2 - sum3;
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 3 反对 0

使用道具 举报

发表于 2015-10-29 02:06:34 | 显示全部楼层
#include <stdio.h>

int main()
{
    int i,sum=0;//i为1-1000的数字 sum为所求和

        for(i = 1;i < 1000;i ++)
        {
                if(i % 15 == 0) //先找出同时被3和5整除的数
                {
                                sum += i;//把次数加入和中
                                continue;
                }

                else if(i % 3 == 0)//把3的倍数找出
                {
                        sum += i;
                        continue;
                }

                else if(i % 5 == 0)//把5的倍数找出
                {
                        sum += i;
                        continue;
                }

        }

        printf("所求之和为%d\n",sum);

        return 0;

}

答案233168
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-12-22 00:05:36 | 显示全部楼层
本帖最后由 鸡汤不加盐 于 2015-12-22 00:29 编辑

def getSum():
    sum = 0
    for x in range (1,1000):
        if x % 3 == 0 or x % 5 == 0:
            sum += x
            return sum


新手 ,连门都没入,到quora 上抄了一个,结果人家说出来233168,为什么我出来SHELL 里出来的是 空白? 谁能告诉我吗? 谢谢

我的思路是
   首先定义范围1-1000
   其次定义 数据类型 整数
   再次 能被3,,5相除的整数
  再次求和
  中间确实可能出现像别的朋友说的那样同时被3 和5 相除的数字,那就要强制每个数字只执行一次?
  不过目前我还不会写,抄别人的到是看的懂。

点评

不,我坚决不同意楼主的看法!: 0.0
不,我坚决不同意楼主的看法!: 0
请自觉维护论坛环境  发表于 2023-1-3 20:04

评分

参与人数 1荣誉 -1 鱼币 -2 贡献 -3 收起 理由
高山 -1 -2 -3 禁止抄别人的!

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 0 反对 2

使用道具 举报

发表于 2016-1-24 13:16:49 | 显示全部楼层
#python 2.7.11

sum(num for num in range(1,1000) if num%3 == 0 or num%5 ==0)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-7-2 21:54

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表