鱼C论坛

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

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

  [复制链接]
发表于 2016-2-29 09:20:08 | 显示全部楼层
本帖最后由 永恒的蓝色梦想 于 2020-9-15 18:54 编辑
x=0
for i in range(1000):
    if (i%3==0) or (i%5==0):
        x=x+i
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 | 显示全部楼层
#include<stdio.h>
#include<stdlib.h>
int sum35(int N)
{
        int i=0;
        int sum=0;
        for(i;i<N;i++)
        {
                if ((i%3==0)||((i%5)==0))
                        sum+=i;
        }
        return sum;
}
int main()
{
        int sum=sum35(1000);
        printf("sum=%d",sum);
        getchar();
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-4-17 17:58:42 | 显示全部楼层
sum =0
for i in range(1,1000):
    if( i % 3 == 0) or (i % 5 == 0):
        sum += i
    i += 1
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 编辑
def sum_multiples_3_and_5(max_num=1000):
    m = (max_num - 1)//3
    n = (max_num - 1)//5
    l = (max_num - 1)//15
    return (m**2 + m)//2*3 + (n**2 + n)//2*5 - (l**2 + l)//2*15

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

使用道具 举报

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

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

使用道具 举报

发表于 2016-5-2 21:36:23 | 显示全部楼层
sum = 0
number = 1000
for i in range(0,1000):
    if i % 3 == 0 or i % 5 == 0:
        sum = sum+i
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 | 显示全部楼层
each_sum = 0
for each in range(1001):
    if ( each % 3 == 0 or each % 5 == 0 ):
        each_sum += each

print(each_sum)

#include<stdio.h>

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

使用道具 举报

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

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

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

使用道具 举报

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

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

使用道具 举报

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

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

使用道具 举报

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

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-17 05:58

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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