鱼C论坛

 找回密码
 立即注册
楼主: 欧拉计划

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

  [复制链接]
发表于 2016-2-29 09:20:08 | 显示全部楼层
本帖最后由 永恒的蓝色梦想 于 2020-9-15 18:54 编辑
  1. x=0
  2. for i in range(1000):
  3.     if (i%3==0) or (i%5==0):
  4.         x=x+i
  5. print (x)
复制代码


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

使用道具 举报

发表于 2016-2-29 14:30:00 | 显示全部楼层
sum=0
for i in range(0,1000):
    if i%3 == 0 or i%5 == 0:
        sum += i
        print('【3或5的倍数】:',i,'      【3 和 5 的倍数的数字之和】:',sum)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-2-29 14:57:28 | 显示全部楼层
sum=0
n = 1
for i in range(0,1000):
    if i%3 == 0 or i%5 == 0:
        sum += i
        print('【第',n,'个3或5的倍数:',i,'】','【3 和 5 的倍数的数字之和:',sum,'】')
    else:
        continue
    n = n+1
print('3或5的倍数共',n,'个')
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-3-14 19:11:57 | 显示全部楼层
  1. #include<stdio.h>
  2. #include<stdlib.h>
  3. int sum35(int N)
  4. {
  5.         int i=0;
  6.         int sum=0;
  7.         for(i;i<N;i++)
  8.         {
  9.                 if ((i%3==0)||((i%5)==0))
  10.                         sum+=i;
  11.         }
  12.         return sum;
  13. }
  14. int main()
  15. {
  16.         int sum=sum35(1000);
  17.         printf("sum=%d",sum);
  18.         getchar();
  19. }
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-4-17 17:58:42 | 显示全部楼层
  1. sum =0
  2. for i in range(1,1000):
  3.     if( i % 3 == 0) or (i % 5 == 0):
  4.         sum += i
  5.     i += 1
  6. print(sum)
复制代码


if不用else可以吗?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-4-17 18:01:16 | 显示全部楼层
无名侠 发表于 2015-7-8 17:53
sum([x for x in range(1000) if not(x%3) or not (x%5)])

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

使用道具 举报

发表于 2016-4-17 18:02:49 | 显示全部楼层
鸡汤不加盐 发表于 2015-12-22 00:05
def getSum():
    sum = 0
    for x in range (1,1000):

是不是没有输出啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-5-1 21:29:29 | 显示全部楼层
本帖最后由 张无忌 于 2016-5-1 21:30 编辑
  1. def sum_multiples_3_and_5(max_num=1000):
  2.     m = (max_num - 1)//3
  3.     n = (max_num - 1)//5
  4.     l = (max_num - 1)//15
  5.     return (m**2 + m)//2*3 + (n**2 + n)//2*5 - (l**2 + l)//2*15

  6. print(sum_multiples_3_and_5())
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-5-2 09:16:14 | 显示全部楼层
  1. s = 0
  2. for i in range(0,1000):
  3.     if (i%3 == 0) or (i%5 == 0):
  4.         s += i
  5. print(s)
复制代码


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

使用道具 举报

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

使用道具 举报

发表于 2016-5-16 14:42:30 | 显示全部楼层
>>> sum=0
>>> for i in range(0,1000):
        if i%3 ==0 or i%5==0:
                sum=sum+i
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-6-7 14:47:44 | 显示全部楼层
num = 0
list1 = range(1001)
for i in list1:
    if (i % 3 == 0) or (i % 5 == 0):
        num += i
print(num)


答案是234168,发现上面很多同学列表定义有误,range(1000)是不包含1000的,应该定义range(1001)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 0 反对 1

使用道具 举报

发表于 2016-6-13 11:20:01 | 显示全部楼层
sum1=0
p=list(filter(lambda x: x%3==0 or x%5==0 , range(1,1000)) )
for i in p:
    sum1+=i
print(sum1)

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

使用道具 举报

发表于 2016-6-14 23:46:16 | 显示全部楼层
如果num余3等于0,得出num,再来个num1,迭代个1000次就得了加起来
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-7-2 19:16:46 | 显示全部楼层
s=0
>>> for i in range(0,1000):
        if i %3==0:
                s+=i
                continue
        if i %5==0:
                s+=i
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-7-3 16:19:44 | 显示全部楼层
  1. each_sum = 0
  2. for each in range(1001):
  3.     if ( each % 3 == 0 or each % 5 == 0 ):
  4.         each_sum += each

  5. print(each_sum)
复制代码


  1. #include<stdio.h>

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

使用道具 举报

发表于 2016-7-11 10:19:15 | 显示全部楼层
233168
  1. #include<cstdio>

  2. void sum(int n){
  3.         long SUM=0;
  4.         for(int i=1;i<n;i++){
  5.                 if(0==i%3 || 0==i%5)SUM+=i;
  6.         }
  7.         printf("%ld",SUM);
  8. }

  9. int main()
  10. {
  11.         sum(1000);
  12.         return 0;
  13. }
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-7-18 15:15:24 | 显示全部楼层
神人 发表于 2015-5-18 17:57
直接把数字拿出来算
这题传参为1000

感觉层主的方法应该是这道题的目的所在,枚举法很简单,直接列写公式就把计算机当成计算器。层主这个方法能降低复杂度。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-7-21 18:16:19 | 显示全部楼层
  1. nums=0

  2. for i in range(1,1001):
  3.     if i%3==0 or i%5==0:
  4.         nums+=i
  5. print(nums)
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-7-21 18:17:14 | 显示全部楼层
  1. nums=0

  2. for i in range(1,1001):
  3.     if i%3==0 or i%5==0:
  4.         nums+=i
  5. print(nums)
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-25 16:01

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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