鱼C论坛

 找回密码
 立即注册
查看: 30664|回复: 273

题目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 编辑

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

使用道具 举报

发表于 2015-4-26 11:16:20 | 显示全部楼层
本帖最后由 瞬秒爆加速 于 2015-4-26 11:19 编辑
  1. def pl(x):
  2.         s=[]
  3.         for i in range(x):
  4.                 if i % 3 ==0 or i % 5 ==0:
  5.                         s.append(i)
  6.         else:
  7.                 return sum(s)
复制代码

  1. def pl(x):
  2.         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 编辑

  1. 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 | 显示全部楼层
  1. long theSum(int maxNum)
  2. {
  3.         int i;
  4.         long sum = 0;

  5.         for (i = 3; i < maxNum; i += 3)
  6.         {
  7.                 sum += i;
  8.         }
  9.         for (i = 5; i < maxNum; i += 5)
  10.         {
  11.                 sum += i;
  12.         }
  13.         for (i = 15; i < maxNum; i += 15)
  14.         {
  15.                 sum -= i;
  16.         }

  17.         return sum;
  18. }
复制代码

直接把数字拿出来算
这题传参为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 | 显示全部楼层
  1. # include<stdio.h>

  2. int main()
  3. {
  4.         int i=0,total;
  5.         while (i<1000)
  6.         {
  7.                 if(i%5==0)
  8.                 {
  9.                         total+=i;
  10.                 }
  11.                 else if(i%3==0)
  12.                 {
  13.                     total+=i;        
  14.                 }
  15.                 i++;
  16.         }
  17.         printf("%d\n",total);
  18.         return 0;
  19. }
复制代码

点评

不,我坚决不同意楼主的看法!: 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语言:
  1. #include <stdio.h>

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

使用道具 举报

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

使用道具 举报

发表于 2015-7-8 17:53:00 | 显示全部楼层
本帖最后由 永恒的蓝色梦想 于 2020-9-15 18:53 编辑
  1. 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 | 显示全部楼层
  1. #include<stdio.h>
  2. void main()
  3. {
  4.         int i, j;
  5.         i = 3;
  6.         j = 0;
  7.         while(i <1000)/*算出所有3的倍数的和*/
  8.         {
  9.                 j += i;
  10.                 i += 3;
  11.         }
  12.         i = 5;
  13.         while(i < 1000) /*算出所有5的倍数的和*/
  14.         {
  15.                 j += i;
  16.                 i += 5;
  17.         }
  18.         i = 15;
  19.         while(i<1000)/*减掉3的倍数5的倍数重复的也就是15的倍数的和*/
  20.         {
  21.                 j -= i;
  22.                 i += 15;
  23.         }
  24.         printf("sum = %d",j);
  25.        
  26. }
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

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

使用道具 举报

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

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


  6. 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 | 显示全部楼层
  1. #include <stdio.h>

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

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

  12.                 else if(i % 3 == 0)//把3的倍数找出
  13.                 {
  14.                         sum += i;
  15.                         continue;
  16.                 }

  17.                 else if(i % 5 == 0)//把5的倍数找出
  18.                 {
  19.                         sum += i;
  20.                         continue;
  21.                 }

  22.         }

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

  24.         return 0;

  25. }
复制代码


答案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 | 显示全部楼层
  1. #python 2.7.11

  2. 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-3-29 19:49

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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